Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c中找到正数和负数的2d数组的和均值_C_Arrays - Fatal编程技术网

如何在c中找到正数和负数的2d数组的和均值

如何在c中找到正数和负数的2d数组的和均值,c,arrays,C,Arrays,如何在c中找到正数和负数的2d数组的和均值 int data[4][5] = { {3,-6,1,-5,7}, {-2,9,-3,5,4}, {7,3,-4,0,-6}, {9,-2,-5,8,3} }; >Sum of all positive number >Mean of all positve number >Sum of all negative number >Mean of all negative number 我是

如何在c中找到正数和负数的2d数组的和均值

int data[4][5] = {
    {3,-6,1,-5,7},
    {-2,9,-3,5,4},
    {7,3,-4,0,-6},
    {9,-2,-5,8,3}
};

>Sum of all positive number 
>Mean of all positve number 
>Sum of all negative number
>Mean of all negative number
我是大学一年级学生,明天有期末考试,请帮我练习。谢谢

#包括
#include <stdio.h>
#include <stdlib.h>

#define ROWS 4
#define COLS 5

int
main(void) {
    int data[ROWS][COLS] = {{3,-6,1,-5,7},
                            {-2,9,-3,5,4},
                            {7,3,-4,0,-6},
                            {9,-2,-5,8,3}};
    int numpos = 0, numneg = 0;
    int possum = 0, negsum = 0;
    int row, col;

    for (row = 0; row < ROWS; row++) {
        for (col = 0; col < COLS; col++) {
            if (data[row][col] > 0) {
                possum += data[row][col];
                numpos++;
            } else if (data[row][col] < 0) {
                negsum += data[row][col];
                numneg++;
            }
        }
    }

    printf("Sum of all positive numbers = %d\n", possum);
    printf("Mean of all positive numbers = %.2f\n", ((1.0) * possum) / numpos);
    printf("Sum of all negative numbers = %d\n", negsum);
    printf("Mean of all negative numbers = %.2f\n", ((1.0) * negsum) / numneg);

    return 0;
}
#包括 #定义第4行 #定义COLS 5 int 主(空){ int data[ROWS][COLS]={{3,-6,1,-5,7}, {-2,9,-3,5,4}, {7,3,-4,0,-6}, {9,-2,-5,8,3}}; int numpos=0,numeng=0; 整数负数=0,负和=0; int row,col; 对于(行=0;行<行;行++){ for(col=0;col0){ possum+=数据[行][col]; numpos++; }else if(数据[行][col]<0){ negsum+=数据[行][列]; numneg++; } } } printf(“所有正数之和=%d\n”,负数); printf(“所有正数的平均值=%.2f\n”,((1.0)*possum)/numpos; printf(“所有负数之和=%d\n”,负和); printf(“所有负数的平均值=%.2f\n”,((1.0)*negsum)/numeng; 返回0; }
以下是一些适用于1D阵列的代码。您可以理解这一点,并将其应用于二维问题

我们需要变量来跟踪两个和(正数和负数),它们可以是
int
s。我们需要两个变量来计算数组中的正数和负数,它们也可以是
int
s。然后我们需要两个变量来存储平均值。这些可以是
float
s,但是对于这种类型的计算,最好只使用
double
s。最后,我们需要一个变量来索引数组。对于这类事情,我通常使用
size\t
变量,但这里我将使用另一个
int

在循环遍历数组以查找和和计数后,是时候计算平均值了。这里需要注意的一个陷阱是,所有参数的类型都是
int
,因此如果我们计算:

mean_pos = sum_pos / count_pos;
我们将使用整数除法,并丢失结果的小数部分。我们可以将
count\u pos*1.0
相乘,将该值转换为
双精度
,并使用浮点除法

我应该指出,这段代码不计算零值,这是您的问题规范所建议的。如果您想在其中一种方法中计算零(既不是正的也不是负的),那么修改代码应该是一件简单的事情

祝你考试顺利

#include <stdio.h>

int main(void)
{
    int data[10] = { 3, -6, 1, -5, 7, -2, 9, -3, 5, 4 };
    int sum_pos = 0;
    int sum_neg = 0;
    int count_pos = 0;
    int count_neg = 0;
    double mean_pos, mean_neg;
    int i;

    for (i = 0; i < 10; i++) {
        if (data[i] > 0) {
            sum_pos += data[i];
            ++count_pos;
        } else if (data[i] < 0) {
            sum_neg += data[i];
            ++count_neg;
        }
    }

    mean_pos = sum_pos / (count_pos * 1.0);
    mean_neg = sum_neg / (count_neg * 1.0);

    printf("Sum of positive numbers: %d\n", sum_pos);
    printf("Mean of positive numbers: %f\n", mean_pos);
    printf("Sum of negative numbers: %d\n", sum_neg);
    printf("Mean of negative numbers: %f\n", mean_neg);

    return 0;
}
#包括
内部主(空)
{
int data[10]={3,-6,1,-5,7,-2,9,-3,5,4};
int sum_pos=0;
int sum_neg=0;
int count_pos=0;
int count_neg=0;
双平均值,平均值负;
int i;
对于(i=0;i<10;i++){
如果(数据[i]>0){
sum_pos+=数据[i];
++计数位置;
}else if(数据[i]<0){
sum_neg+=数据[i];
++计数为负;
}
}
平均值=总和/(计数*1.0);
平均负=和负/(计数负*1.0);
printf(“正数总和:%d\n”,总和位置);
printf(“正数的平均值:%f\n”,平均值);
printf(“负数之和:%d\n”,和负);
printf(“负数的平均值:%f\n”,平均值为负);
返回0;
}

如果(a[i][j]>0,则扫描整个数组,找到它们的总和并跟踪正数总数。除以总和。同样,对于负数也要这样做。先生,你能给我解释一下代码吗?@RoadRunner谢谢你,我会做更多的练习,但是LPs有什么错吗?我在这篇文章中做错了什么吗?如果错了,我只会删除它,实际上“LPs”认为自己特别聪明。---。一个建议是,不要要求代码,因为stackoverflow不是用来解决问题的。向社区展示你所做的事情,它会提供编辑和更好的解决方案。@Apy非常感谢你的建议,我只是个新手,很抱歉,不要喂动物……非常感谢!。我做到了……)非常感谢,我要从中学习,,