输入一个6行7列的整数数组a,计算其元素平均值,统计并输出数组a中不小于平均值的元素个数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
int sum=0,cnt=0;
double ave=0;
int a[6][7];
for(i=0;i<6;i++){
for(j=0;j<7;j++){
scanf("%d",&a[i][j]);
sum+=a[i][j];
}
}
ave=sum/42.0;
for(i=0;i<6;i++){
for(j=0;j<7;j++){
if(a[i][j]<ave)
cnt++;
}
}
printf("%d",cnt);
return 0;
}
float fun(int **p,int n,int m)
{
float sum;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
sum += p[i][j];
}
return sum/(m*n);
}
void main()
{
int n;
scanf("%d",&n);
int m;
scanf("%d",&m);
int **p = new int*[n];
for(int i=0;i<n;i++)
{
p[i] = new int[m];
for(int j=0;j<m;j++)
scanf("%d",&p[i][j]);
}
float avg = fun(p,n,m);
int count = 0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(p[i][j] >= avg)
count++;
printf("平均分:%.1f;超过平均分的%d人",avg,count);
}
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
int main()
{
int **p = new int *[6];
for (int i = 0; i < 6;i++)
{
p[i] = new int[7];
for (int j = 0;j < 7;j++)
{
scanf("%d",&p[i][j]);
}
}
//计算平均值
int sum = 0;
for (int i = 0; i < 6;i++)
{
for (int j = 0;j< 7;j++)
{
sum += p[i][j];
}
}
float avg = sum / 42;
int cnt = 0;
for (int i = 0; i < 6;i++)
{
for (int j = 0;j< 7;j++)
{
if (p[i][j] < avg)
{
cnt++;
}
}
}
printf("小于均值的个数:%d\n",cnt);
getchar();
getchar();
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
二维数组的引用方式同一维数组是一样的,通过数组名和下标进行数组元素的引用
数组名 [行下标][列下标];
访问时也不能超过数组的范围。
int a[3][4];
a[3][4]=3;//错误操作,行下标范围0~2,列下标范围0~3