输入学生各科成绩,输出低于平均分的成绩

代码输出分数结果全为0,求修改

img


#include "stdio.h"
#define N 10   //学生人数上限
#define M  5   //课程门数上限
struct stud
{   char name[10];   //姓名
    double course[M];//成绩
    double aver;     //平均分
}s[N];
int main()
{   int n,m,i,j;
    double sum,course[M]={0};   //统计每门课程的平均分
    scanf("%d,%d",&n,&m);        //输入学生人数与课程门数    
struct stud s[n];
for(i=0;i<n;i++)
{
scanf("%s\n",s[i].name);
for(j=0;j<m;j++)
{
scanf("%d",&s[i].course[j]);
if(j==0)
course[0]+=s[i].course[j];
if(j==1)
course[1]+=s[i].course[j];
if(j==2)
course[2]+=s[i].course[j];
}
printf("\n");
}   
printf("name      ");
    for(j=0;j<m;j++)             //求每门课程的平均分
    {    course[j]=course[j]/n;
         printf("CNO:%d   ",j+1);//显示栏目
    }
    printf("\n");
    for(i=0;i<n;i++)
    {    printf("%10s",s[i].name);
         for(j=0;j<m;j++)
            if(s[i].course[j]<course[j])
                printf("%5.1f   ",s[i].course[j]);
            else
                printf("%8c",32);
         printf("\n");    
     }
     return 0;
}

把第20行的scanf("%d",&s[i].course[j]); 改为scanf("%lf",&s[i].course[j]);试试,因为学生信息结构stud的课程成绩course数组是double类型,它在scanf()函数里需要使用%lf占位符来获取数据,修改如下:

 
#include "stdio.h"
#define N 10   //学生人数上限
#define M  5   //课程门数上限
struct stud
{   char name[10];   //姓名
    double course[M];//成绩
    double aver;     //平均分
}s[N];
int main()
{   int n,m,i,j;
    double sum,course[M]={0};   //统计每门课程的平均分
    scanf("%d,%d",&n,&m);        //输入学生人数与课程门数    
struct stud s[n];
for(i=0;i<n;i++)
{
scanf("%s\n",s[i].name);
for(j=0;j<m;j++)
{
scanf("%lf",&s[i].course[j]);
if(j==0)
course[0]+=s[i].course[j];
if(j==1)
course[1]+=s[i].course[j];
if(j==2)
course[2]+=s[i].course[j];
}
//printf("\n");
}   
printf("\n");
printf("%-10s","name");
    for(j=0;j<m;j++)             //求每门课程的平均分
    {    course[j]=course[j]/n;
         printf("CNO:%d   ",j+1);//显示栏目
    }
    printf("\n");
    for(i=0;i<n;i++)
    {    printf("%-10s",s[i].name);
         for(j=0;j<m;j++)
            if(s[i].course[j]<course[j])
                printf("%-5.1f   ",s[i].course[j]);
            else
                printf("%8c",32);
         printf("\n");    
     }
     return 0;
}

img