小弟刚学C不久,碰到一个难解的有关问题,干扰小弟我几天了!紧急跪求大牛
小弟刚学C不久,碰到一个难解的问题,干扰我几天了!紧急!!!!!跪求大牛!
for(i=0;i<10;i++)
{
printf("请输入学生信息:\n");
scanf("%d%s%c%d%f%f%f%f%f",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].age,&stu[i].score.chi,&stu[i].score.math,&stu[i].score.eng,&stu[i].score.phy,&stu[i].score.chem);
}
printf(“hello,world!”);
这个for循环,我是想用来输入十个学生信息的。
当我输入完一组信息后,按回车想输入第二组。结果出现这种情况:
请输入学生信息:
0021 liqiang m 20 85 78 89 56 78(按回车准备输入第二组,结果直接这样了。)
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
“hello,world!”不知道怎么回事,后面几次循环程序自动运行printf我没输入数据直接跳过结束循环了
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
+1
------解决方案--------------------
你这个程序我完整的在VC 6.0上测试了一下。确实出现你说的问题,原因是scanf函数的输入格式不对。源码如下:
#include "stdafx.h"
typedef struct{
float chi;
float math;
float eng;
float phy;
float chem;
}score_1;
typedef struct{
int num;
char name[20];
char sex;
int age;
score_1 score;
}student;
student stu[10];
int main(int argc, char* argv[])
{
int i;
for(i=0;i<3;i++) //10个数据太多,我在这给改成了3个,偷点懒
{
printf("请输入学生信息:\n");
scanf("%d,%s,%c,%d,%f,%f,%f,%f,%f",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].age,&stu[i].score.chi,&stu[i].score.math,&stu[i].score.eng,&stu[i].score.phy,&stu[i].score.chem);
}
printf("Hello World!\n");
return 0;
}
数据输入如下:
0021,liqiang,m,20,85,78,89,56,78(回车)......
------解决方案--------------------
在printf("请输入学生信息:\n") 后加入 fflush(stdin)清空输入缓冲,有些是编译器的问题..
for(i=0;i<10;i++)
{
printf("请输入学生信息:\n");
scanf("%d%s%c%d%f%f%f%f%f",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].age,&stu[i].score.chi,&stu[i].score.math,&stu[i].score.eng,&stu[i].score.phy,&stu[i].score.chem);
}
printf(“hello,world!”);
这个for循环,我是想用来输入十个学生信息的。
当我输入完一组信息后,按回车想输入第二组。结果出现这种情况:
请输入学生信息:
0021 liqiang m 20 85 78 89 56 78(按回车准备输入第二组,结果直接这样了。)
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
请输入学生信息:
“hello,world!”不知道怎么回事,后面几次循环程序自动运行printf我没输入数据直接跳过结束循环了
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
+1
------解决方案--------------------
你这个程序我完整的在VC 6.0上测试了一下。确实出现你说的问题,原因是scanf函数的输入格式不对。源码如下:
#include "stdafx.h"
typedef struct{
float chi;
float math;
float eng;
float phy;
float chem;
}score_1;
typedef struct{
int num;
char name[20];
char sex;
int age;
score_1 score;
}student;
student stu[10];
int main(int argc, char* argv[])
{
int i;
for(i=0;i<3;i++) //10个数据太多,我在这给改成了3个,偷点懒
{
printf("请输入学生信息:\n");
scanf("%d,%s,%c,%d,%f,%f,%f,%f,%f",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].age,&stu[i].score.chi,&stu[i].score.math,&stu[i].score.eng,&stu[i].score.phy,&stu[i].score.chem);
}
printf("Hello World!\n");
return 0;
}
数据输入如下:
0021,liqiang,m,20,85,78,89,56,78(回车)......
------解决方案--------------------
在printf("请输入学生信息:\n") 后加入 fflush(stdin)清空输入缓冲,有些是编译器的问题..