杭电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
展开
 我来答
nanhay
推荐于2016-11-25 · TA获得超过1173个赞
知道小有建树答主
回答量:824
采纳率:0%
帮助的人:997万
展开全部
//*******************************************************************
//  杭电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;
}
//*******************************************************************
// 祝学习进步,更上一层楼 *(^-^)*
//*******************************************************************
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式