在输出sum前一行加一段对sum计算的代码就好了。你初始sum=0若不进行计算,当然输出的是初始值了
#include<stdio.h> #define N 100 #include<stdio.h> struct Student { int num[10]; char name[20]; float score; }stu[N]; int main() {int n,i,j; float sum=0; float aver; float temp; struct Student stu[N]; printf("请输入人数:"); scanf("%d",&n); for(i=1;i<=n;j++) { printf("请输入第%d个学生的信息:",i++); scanf("%d %s %f",&stu[i].num,&stu[i].name,&stu[i].score); } printf("输出学生信息:\n"); printf("输出学生信息:\n"); for(i=1;i<=n;j++) { printf("请输入第%d个学生的信息:",i++); scanf("%d %s %f",&stu[i].num,&stu[i].name,&stu[i].score); } for(i=1;i<=n;i++) { sum=sum+stu[i].score; } printf("总成绩:%.2f\n",sum); aver=sum/n; printf("平均成绩:%.2f\n",aver); for(i=1;i<=n;j++) for(j=i+1;j<=n;j++) { if(stu[i].score<stu[j].score) {temp=stu[i].score; stu[i].score=stu[j].score; stu[j].score=temp; } } for(i=1;i<=n;i++) printf("%d,%s,%f\n",stu[i].num,stu[i].name,stu[i].score); return 0; }