杭电ACM2023 大神,快来解救我
#include<stdio.h>intmain(){intq,w;intn,m,a[51][6];inti,j,student;doubleaver1[6],aver,...
#include<stdio.h>
int main()
{
int q,w;
int n,m,a[51][6];
int i,j,student;
double aver1[6],aver,b1[6],b;
while(scanf("%d %d",&n,&m)!=EOF&&n!=0&&m!=0)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=n;i++)
{
b=0;
for(j=1;j<=m;j++)
b=b+a[i][j];
b1[i]=b/m;
}
for(i=1;i<=n;i++)
printf("%.2lf ",b1[i]);
printf("\n");
for(j=1;j<=m;j++)
{
aver=0;
for(i=1;i<=n;i++)
aver=aver+a[i][j];
aver1[j]=aver/n;
}
for(j=1;j<=m;j++)
printf("%.2lf ",aver1[j]);
printf("\n");
w=0;
for(i=1;i<=n;i++)
{
q=0;
for(j=1;j<=m;j++)
if(b1[i]>=aver1[j])
q++;
if(q==m)
w++;
}
printf("%d\n",w);
printf("\n");
}
return 0;
}
错误
Runtime Error (ACCESS_VIOLATION)
链接
http://acm.hdu.edu.cn/showproblem.php?pid=2023 展开
int main()
{
int q,w;
int n,m,a[51][6];
int i,j,student;
double aver1[6],aver,b1[6],b;
while(scanf("%d %d",&n,&m)!=EOF&&n!=0&&m!=0)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=n;i++)
{
b=0;
for(j=1;j<=m;j++)
b=b+a[i][j];
b1[i]=b/m;
}
for(i=1;i<=n;i++)
printf("%.2lf ",b1[i]);
printf("\n");
for(j=1;j<=m;j++)
{
aver=0;
for(i=1;i<=n;i++)
aver=aver+a[i][j];
aver1[j]=aver/n;
}
for(j=1;j<=m;j++)
printf("%.2lf ",aver1[j]);
printf("\n");
w=0;
for(i=1;i<=n;i++)
{
q=0;
for(j=1;j<=m;j++)
if(b1[i]>=aver1[j])
q++;
if(q==m)
w++;
}
printf("%d\n",w);
printf("\n");
}
return 0;
}
错误
Runtime Error (ACCESS_VIOLATION)
链接
http://acm.hdu.edu.cn/showproblem.php?pid=2023 展开
1个回答
展开全部
//*******************************************************************
// 杭电2023 平均成绩 代码已AC
// 第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。
// 注意: 是统计每科成绩都大于等于 全班平均成绩的 学生数量
// b1[i] : 是 每个学生 的平均成绩,而不是单科成绩
// 所以应该用a[i][j]来跟 aver1[j] 比较
// 且数组b1[]大小应该设置为51 (因为最多有50个学生)
// 另外一个就是。最后一个输出后面不要带空格
//*******************************************************************
#include<stdio.h>
int main()
{
int q, w;
int n, m, a[51][6];
int i, j, student;
double aver1[6], aver, b1[51], b;
while(scanf("%d %d", &n, &m) != EOF )
{
if(n==0&&m==0)
break;
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
scanf("%d", &a[i][j]);
for(i = 1; i <= n; i++)
{
b = 0;
for(j = 1; j <= m; j++)
b = b + a[i][j];
b1[i] = b / m;
}
for(i = 1; i < n; i++) //最后一个输出不要带空格哦
printf("%.2lf ", b1[i]);
printf("%.2lf\n", b1[i]);
for(j = 1; j <= m; j++)
{
aver = 0;
for(i = 1; i <= n; i++)
aver = aver + a[i][j];
aver1[j] = aver / n;
}
for(j = 1; j < m; j++) //最后一个输出不要带空格哦
printf("%.2lf ", aver1[j]);
printf("%.2lf\n", aver1[j]);
w = 0;
for(i = 1; i <= n; i++) //****************************
{ // 题目要求: 班级中各科成绩均大于等于平均成绩的学生数量
q = 0;
for(j = 1; j <= m; j++)
if(a[i][j] >= aver1[j]) //b1[i] 存储的是学生的平均成绩
q++;
if(q == m)
w++;
} //****************************
printf("%d\n", w);
printf("\n");
}
return 0;
}
//*******************************************************************
// 祝学习进步,更上一层楼 *(^-^)*
//*******************************************************************
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询