user-0 提问: 结构体问题

回复:
user: user-1
content: 在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。  在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常运行的问题。

user: user-2
content: 引用 6 楼 braveboyny 的回复: char student_name[1000000000000000000000000000000];   不怕栈溢出？？

user: user-3
content: 引用 8 楼 zhao4zhong1 的回复:在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。  在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常运行的问题。 学习了  赵忠大哥！

user: user-3
content: 引用 6 楼 braveboyny 的回复: char student_name[1000000000000000000000000000000];  你是个人才   为嘛给那么大！ 呵呵

user: user-4
content: char student_name[1000000000000000000000000000000];

user: user-5
content: 1. char student_name[]; --> char student_name[100]; // 需要预留空间存储名字 2. scanf_s("%s", studentA.sutdent_name); --> gets_s(studentA.student_name);

user: user-6
content: char student_name[];你的姓名都没有分配空间，你知道存哪里去了？

user: user-6
content: char student_name[];你的姓名都没有分配空间，你知道存哪里去了？

user: user-5
content: #include <stdio.h> #include <stdlib.h>  typedef struct Student Student; 	struct Student 	{ 		int math_grade; 		int chinese_grade; 		int english_grade; 		char student_name[100]; 	}; 	int main() 	{ 		Student studentA; 		Student studentB; 		Student studentC;  		//引导输入第一个学生的数据。 		printf("请输入第一个学生的名字："); 		gets_s(studentA.student_name); 		fflush(stdin); 		printf("\n"); 		printf("请输入%s的数学成绩:",studentA.student_name); 		scanf_s("%d", &studentA.math_grade); 		fflush(stdin); 		printf("\n"); 		printf("请输入%s的语文成绩：",studentA.student_name); 		scanf_s("%d", &studentA.chinese_grade); 		fflush(stdin); 		printf("\n"); 		printf("请输入%s的英语成绩：",studentA.student_name); 		scanf_s("%d", &studentA.english_grade); 		fflush(stdin); 		printf("%d %d %d",studentA.math_grade,studentA.chinese_grade,studentA.english_grade); 		printf("\n");  		//引导输入第二个学生的数据。 		printf("请输入第二个学生的名字："); 		gets_s(studentB.student_name); 		fflush(stdin); 		printf("\n"); 		printf("请输入%s的数学成绩:",studentB.student_name); 		scanf_s("%d", &studentB.math_grade); 		fflush(stdin); 		printf("\n"); 		printf("请输入%s的语文成绩：",studentB.student_name); 		scanf_s("%d", &studentB.chinese_grade); 		printf("\n"); 		printf("请输入%s的英语成绩：",studentB.student_name); 		scanf_s("%d", &studentB.english_grade); 		fflush(stdin); 		printf("%d %d %d",studentB.math_grade,studentB.chinese_grade,studentB.english_grade); 		printf("\n");  		//引导输入第三个学生的数据。 		printf("\n"); 		printf("请输入第三个学生的名字："); 		gets_s(studentC.student_name); 		fflush(stdin); 		printf("\n"); 		printf("请输入%s的数学成绩:",studentC.student_name); 		scanf_s("%d", &studentC.math_grade); 		fflush(stdin); 		printf("\n"); 		printf("请输入%s的语文成绩：",studentC.student_name); 		scanf_s("%d", &studentC.chinese_grade); 		fflush(stdin); 		printf("\n"); 		printf("请输入%s的英语成绩：",studentC.student_name); 		scanf_s("%d", &studentC.english_grade); 		fflush(stdin); 		printf("%d %d %d",studentC.math_grade,studentC.chinese_grade,studentC.english_grade); 		printf("\n");         printf("下面输出成绩单：\n"); 		putchar(10);  		//输出成绩单。 		printf("姓名\t数学\t语文\t英语\t\n"); 		printf("%s\t%d\t%d\t%d\n",studentA.student_name,studentA.math_grade,studentA.chinese_grade,studentA.english_grade); 		printf("%s\t%d\t%d\t\%d\n",studentB.student_name,studentB.math_grade,studentB.chinese_grade,studentB.english_grade); 		printf("%s\t%d\t%d\t\%d\n",studentC.student_name,studentC.math_grade,studentC.chinese_grade,studentC.english_grade); 		system("pause"); 		return 0; 	}

user: user-7
content: 把fflush(stdin)去掉。