首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

杭电ACM2023求解解决办法

2012-03-09 
杭电ACM2023求解[codeC/C++][/code]#includestdio.hint main(){int a[6][51]int flag 0, i, j, m, n

杭电ACM2023求解
[code=C/C++][/code]
#include"stdio.h"
int main()
{
int a[6][51];
int flag = 0, i, j, m, n, num;
double c[6], d[51];
double sum1 = 0, sum2 = 0;
while(scanf("%d%d", &n, &m) != EOF)//n表示学生人数,m表示学科门数
{
  if(n==0||m==0)continue;
  for(i = 0; i < n; i++)//输入
for(j = 0; j < m; j++)
{
scanf("%d", &a[i][j]);
//printf("a[][]=%d ", a[i][j]);
}
  for(i = 0; i < m; i++)//求每门的平均分
{
sum1 = 0;
for(j = 0; j < n; j++)
sum1 = sum1 + a[j][i];
c[i] = sum1 / n;
//printf("c[i]=%lf ", c[i]);
}

for(i = 0; i < n; i++)//学生平均成绩
{
sum2 = 0;
for(j = 0; j < m; j++)
sum2 = sum2 + a[i][j];
d[i] = sum2 / m;
//printf("c[i]=%lf ", d[i]);
}
num = 0;
for(i = 0; i < n; i++)//计算每门成绩大于该课程平均分的学生人数
{
flag = 1;
for(j = 0; j < m; j++)
if(a[i][j] < c[j])
{
flag=0;
break;
}
if(flag)
num++;
}
for(i = 0; i < n; i++)//输出学生平均成绩
printf("%.2lf ", d[i]);
printf("\n");

for(i = 0; i < m; i++)//输出每门平均成绩
printf("%.2lf ", c[i]);
printf("\n");

printf("%d\n\n", num);//输出达到要求的学生人数
}
 return 0;
}


不知道哪里错了,求解

[解决办法]
以下声明与后面的使用不符:
int a[6][51];
改为
int a[51][6];

每行输出结尾多了空格。要改为:
for(i = 0; i < n; i++)//输出学生平均成绩
{
printf("%.2lf", d[i]);
if(i < n-1) printf(" ");
}
printf("\n");

for(i = 0; i < m; i++)//输出每门平均成绩
{
printf("%.2lf", c[i]);
if(i < m-1) printf(" ");
}
printf("\n");
[解决办法]
4L说得对

热点排行