33,311
社区成员
发帖
与我相关
我的任务
分享
//HD2023:输入学生数n,每人考m(m<=5)门课,然后输入各科成绩,输出每个学生的平均成绩及各科平均成绩以及各科成绩均大于等于平均成绩的学生数;
//zhao 3.23午
#include<stdio.h>
int main()
{
int n,m,i,j;
scanf("%d %d",&n,&m);
int arr[n][m];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&arr[i][j]);
}
}
double average1[m];
double average2[n];
double sum;
for(i=0;i<n;i++)
{
sum=0;
for(j=0;j<m;j++)
{
sum+=arr[i][j];
}
average1[i]=sum/n;
}
for(i=0;i<m;i++)
{
sum=0;
for(j=0;j<n;j++)
{
sum+=arr[j][i];
}
average2[i]=sum/m;
}
int x=0,y=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(arr[i][j]<average1[j])
{
break;
}
else
x+=1;
}
if(x==m)
y+=1;
}
for(i=0;i<n;i++)
{
printf("%.2f ",average2[i]);
}
printf("\n");
for(i=0;i<m;i++)
{
printf("%.2f ",average1[i]);
}
printf("\n");
printf("%d",y);
return 0;
}
int arr[n][m];
由于m, n都是未知的值,在有些编译器里可能运行出问题(内存越界),因为n, m是随机数。建议使用动态数组(malloc/free)。
https://bbs.csdn.net/topics/392344149
可参考这个帖子的回答[/quote]
好的,谢谢解答,我还没学到指针,所以没有用过int arr[n][m];
由于m, n都是未知的值,在有些编译器里可能运行出问题(内存越界),因为n, m是随机数。建议使用动态数组(malloc/free)。
https://bbs.csdn.net/topics/392344149
可参考这个帖子的回答