2 supersuperna123 supersuperna123 于 2016.03.29 20:48 提问

误入岐途 一道小题无法ac 我的错???求各路神仙相助

**_题目如下
假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。

Input
输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。然后是n行数据,每行包括m个整数(即:考试分数)。

Output
对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。
每个测试实例后面跟一个空行。

Sample Input
2 2
5 10
10 20

Sample Output
7.50 15.00
7.50 15.00
1

Author
lcy

Source**_
我的代码为

# # # ## **#include

# # # ## int main()

# # # ## {

# # # ## int n,m,c;

# # # ## float a[100][100];

# # # ## float b[100];

# # # ## int i,p,jige;

# # # ## float ave1,ave2;

# # # ## while(scanf("%d%d",&n,&m)!=EOF)

# # # ## {

# # # ## for(i=0;i<n;i++)

# # # ## {

# # # ## for(p=0;p<m;p++)

# # # ## {

# # # ## scanf("%f",&a[i][p]);

# # # ## }

# # # ## }

# # # ## ave2=0;

# # # ## ave1=0;

# # # ## jige=0;

# # # ## c=0;

# # # ## for(i=0;i<n;i++)

# # # ## {

# # # ## for(p=0;p<m;p++)

# # # ## {

# # # ## ave1=ave1+a[i][p];

# # # ## }

# # # ## ave1=ave1/((1.0)*m);

# # # ## if(i!=(n-1))

# # # ## {

# # # ## printf("%.2f ",ave1);

# # # ## }

# # # ## if(i==(n-1))

# # # ## {

# # # ## printf("%.2f\n",ave1);

# # # ## }

# # # ## ave1=0;

# # # ## }

# # # ## for(p=0;p<m;p++)

# # # ## {

# # # ## for(i=0;i<n;i++)

# # # ## {

# # # ## ave2=ave2+a[i][p];

# # # ## }

# # # ## ave2=ave2/((1.0)*n);

# # # ## b[p]=ave2;

# # # ## if(p!=(m-1))

# # # ## {

# # # ## printf("%.2f ",ave2);

# # # ## }

# # # ## if(p==(m-1))

# # # ## {

# # # ## printf("%.2f\n",ave2);

# # # ## }

# # # ## ave2=0;

# # # ##

# # # ## }

# # # ## for(i=0;i<n;i++)

# # # ## {

# # # ## for(p=0;p<m;p++)

# # # ## {

# # # ## c=c+1;

# # # ## if(a[i][p]<b[p])

# # # ## break;

# # # ## }

# # # ## if(c==(m-1))

# # # ## {

# # # ## jige=jige+1;

# # # ## }

# # # ## }

# # # ## printf("%d\n",jige);

# # # ## }

# # # ##

# # # ## return 0;

# # # ## }**

不知道是哪里的错误求帮助求帮助

1个回答

lx624909677
lx624909677   Ds   Rxr 2016.03.29 23:14
 #include<stdio.h>
void main()
{
    int n,m,i,j,count,s;
    double a[51][51],sum1[51],sum2[51];
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        for(j=1;j<=m;j++)
        {
            sum2[j]=0;
        }
        for(i=1;i<=n;i++)
        {
            sum1[i]=0;
            for(j=1;j<=m;j++)
            {
                scanf("%lf",&a[i][j]);
                sum1[i]+=a[i][j];
                sum2[j]+=a[i][j];
            }
        }
        for(i=1;i<=n;i++)
        {
            if(i!=n)
                printf("%.2lf ",sum1[i]/(double)m);
            else
                printf("%.2lf",sum1[i]/(double)m);
        }
        printf("\n");
        for(i=1;i<=m;i++)
        {
            if(i!=m)
                printf("%.2lf ",sum2[i]/(double)n);
            else
                printf("%.2lf",sum2[i]/(double)n);
        }
        printf("\n");
        count=0;
        for(i=1;i<=n;i++)
        {
            s=0;
            for(j=1;j<=m;j++)
            {
                if(a[i][j]>=sum2[j]/(double)n)
                    s++;
            }
            if(s==m)
                count++;
        }
        printf("%d\n\n",count);
    }
}

要是为了参加ACM做练习,遇到这种问题尽量自己去思考,别人给你答案你看了之后也许能马上明白,但是再有问题你还是不会解决,赛场上能靠的只有队友和少量的资料

supersuperna123
supersuperna123 谢谢您的建议和答案
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!