结构体程序错误,请大佬帮忙看卡慢慢
输出的时候出现了问题,输出结果在下面,在输出第二个学生信息的时候还没输入学生名字就直接到学生性别了程序代码:
#include<stdio.h> int main() { struct Studens { char name[60]; char gender[5]; int studen_number; float grade; }studen1,studen2; puts("录入first学生信息:"); puts(""); printf("学生名字:"); fgets(studen1.name, 60, stdin); puts(" "); printf("学生性别:"); fgets(studen1.gender, 5, stdin); puts(" "); printf("学号:"); scanf_s("%d", &studen1.studen_number); puts(" "); printf("输入学生成绩:"); scanf_s("%f", &studen1.grade); puts(""); puts("录入second学生信息:"); puts(""); printf("学生名字:"); fgets(studen2.name, 60, stdin); puts(" "); printf("学生性别:"); fgets(studen2.gender, 5, stdin); puts(" "); printf("学号:"); scanf_s("%d", &studen2.studen_number); puts(" "); printf("输入学生成绩:"); scanf_s("%f", &studen2.grade); printf("是否比较两个学生的成绩:"); printf("是按1\t否按2\n"); int a; scanf_s("%d", &a); switch (a) { case '1': if (studen1.grade > studen2.grade) { printf("名字:%s\n性别:%s\n学号:%d\n成绩:%.2f\n", studen1.name, studen1.gender, studen1.studen_number, studen1.grade); } if(studen1.grade < studen2.grade) { printf("名字:%s\n性别:%s\n学号:%d\n成绩:%.2f\n", studen2.name, studen2.gender, studen2.studen_number, studen2.grade); }break; default:printf("滚吧"); break; } return 0; }
输出结果
录入first学生信息:
学生名字:纽约
学生性别:男
学号:20
输入学生成绩:738728
录入second学生信息:
学生名字:
学生性别:
学生名字:纽约
学生性别:男
学号:20
输入学生成绩:738728
录入second学生信息:
学生名字:
学生性别:
[此贴子已经被作者于2019-9-5 13:53编辑过]