C语言:编写函数,计算二维数组中正数的平均值和负数的个数,通过两个全局变量返回
程序员文章站
2022-03-10 12:09:48
...
题目来源:大工慕课 链接
作者:Caleb Sung
题目要求
编写函数,计算二维数组中正数的平均值和负数的个数,通过两个全局变量返回
a.主函数中定义一个3行4列的二维数组,数组元素类型不限,在程序中对数组元素进行赋值
b.主函数中输出该二维数组(显示为3行4列)、正数的平均值以及负数的个数
提示
根据题意我们要随机生成12个数字赋值给a[3][4]
, 不过采用srand(time(NULL))
生成随机种子后再使用rand()
来生成随机数只能生成正的随机数。
对于这个问题我们可以利用这样的方法解决:
a[i][j] = (rand()%100+0) - 50;
可以理解为生成-50到50之间(含)的整数。
参考代码
为防止计算平均数时结果带有小数,应当将average
定义为float
等类型。
#include<stdio.h>
int count=0;
float average=0;
void summary(int a[3][4]){
int sum=0, i, j;
for(i=0; i<3; i++)
for(j=0; j<4; j++){
if(a[i][j] > 0)
sum += a[i][j];
else
count++;
}
average = sum/12;
}
void main(){
int a[3][4], i, j;
srand(time(NULL));
for(i=0; i<3; i++)
for(j=0; j<4; j++)
a[i][j] = (rand()%100+0) - 50;
printf("随机生成的数组为:\n");
for(i=0; i<3; i++)
for(j=0; j<4; j++){
printf("%d\t", a[i][j]);
if(j == 3){
printf("\n");
}
}
summary(a);
printf("\n数组中全部正数的平均值为:%.2f\n数组中全部负数的数量为:%d", average, count);
}
上一篇: 微信小程序入门1-小程序代码构成json
下一篇: 把一个数组分解成两个数组