c语言的二维数组求解

输入一个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

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^