请问这个代码运行后总分为什么不对,哪里错了,怎样改?谢谢!
#include<stdio.h>struct student{
int num;
char name;
int chinese,math,english,total;
};
void main()
{
int i,n;
struct student s[50],*p;
p=s;
void output_total(struct student *p,int n);
struct student input();
printf("输入学生的人数: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("输入第%d个学生的基本信息: \n",i);
s[i]=input();
output_total(s,n);
}
}
struct student input()
{
struct student s;
printf("学号 姓名 语文 数学 英语: \n");
scanf("%d%s%d%d%d",&s.num,&s.name,&s.chinese,&s.math,&s.english);
return s;
}
void output_total(struct student *p,int n)
{
(*p).total=(*p).chinese+(*p).math+(*p).english;
printf("总成绩为%d\n",(*p).total);
}