建立一个学生的结构记录,包括学号、姓名和成绩。输入整数n(n<=10),再输入n个学生的基本信息,要求计算并输出他们的平均成绩(保留2位小数)。

#include<stdio.h>
struct student{
int num;
char name[10];
int score;
};
int main()
{
int i,n,sum=0,x;
struct student s[10];
printf("Input n:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Input the number,name,score of the %d student:",i+1);
scanf("%d%s%d",&s[i].num,s[i].name,&s[i].score);
sum+=s[i].score;
}
x=sum/n;
printf("The average score is:%.2f",x);
return 0;
}
为啥输出平均分是0.00啊,哪一步出问题了吗


#include<stdio.h>
struct student{
int num;
char name[10];
int score;
};
int main()
{
    int i,n,sum=0,x;
    struct student s[10];
    printf("Input n:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
      {
    printf("Input the number,name,score of the %d student:",i+1);
    scanf("%d%s%d",&s[i].num,s[i].name,&s[i].score);
    sum+=s[i].score;
      }
    x=sum/n;
    printf("The average score is:%.2f",x);
    return 0;
}

见注释,供参考:

#include <stdio.h>
#define N 11
struct student{
    int  num;
    char name[10];
    int  score;
};
int main()
{
    int i,n,sum=0;
    double x;      //修改
    struct student s[N];
    printf("Input n:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("Input the number,name,score of the %d student:",i+1);
        scanf("%d%s%d",&s[i].num,s[i].name,&s[i].score);
        sum+=s[i].score;
    }
    x=(double)sum/n;//修改
    printf("The average score is:%.2f",x);
    return 0;
}

调试