C语言结构体问题

今天刷一个C语言结构体的题,就是写不出来,不知道哪一步错了。求大佬指点.
题:从键盘输入2名学生的姓名和数学、英语及C语言的成绩,计算并输出其总成绩和平均成绩

#include <stdio.h>
typedef struct {
 char name[20];//姓名
 int math,english,C;//科目
 float sum,aver;/*总成绩和平均成绩 */
}STU;
main()
{
 STU st[2],\*p;
 int i;
for(i=0;i<2;i++) {
    printf("Input name:");
    scanf("%s",&st[i].name); /*第一空*/
    printf("Input 3 score:");
    scanf("%d,%d,%d",&st[i].math,&st[i].english,&st[i].C);
}

for(p=st;p<st+2;p++)
 {  p ->sum = p->math + p->english + p->C;
    p->aver = p->sum/3;/*第三空*/
    printf("name=%s,sum=%5.1f,aver=%5.1f\n", p->name, p->sum, p->aver);
 }

}

总是输完第一次,就输出结果了,循环走不完,而且结果也不对.

阅读 2.5k
2 个回答

结果:

  1. 代码没啥问题;
  2. 输入方式有问题:输入Score的时候,应该逗号分隔输入,例如:
Input name:hello
Input 3 score:1,2,3
Input name:world
Input 3 score:4,5,6
name=hello,sum=  6.0,aver=  2.0
name=world,sum= 15.0,aver=  5.0

建议:
code 先对齐下,不然大家看代码不好看。

(1)STU st[2],\*p; //这里注意
(2)scanf("%d,%d,%d",&st[i].math,&st[i].english,&st[i].C); //这里注意 输入的时候输入内容要连带 , 哦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏