如何在c中找到正数和负数的2d数组的和均值
如何在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 我是
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非常感谢你的建议,我只是个新手,很抱歉,不要喂动物……非常感谢!。我做到了……)非常感谢,我要从中学习,,