#include <stdio.h>
#define N 5
struct student
{
int num;
char *name;
float score_c;
float score_ja;
};
void main ()
{
int i;
struct student stu[N];
for (i=0;i<N;i++)
{
printf ("\n请输入第%d位学员的学号:",i+1);
scanf ("%d",&stu[i].num);
printf ("\n请输入第%d位学员的姓名:",i+1);
fflush(stdin);
gets (stu[i].name);
printf ("\n请输入第%d位学员的C课程成绩:",i+1);
scanf ("%f",&stu[i].score_c,&stu[i].score_ja);
printf ("\n请输入第%d位学员的Java课程成绩:",i+1);
scanf ("%f",&stu[i].score_ja);
}
}
把中间调用函数一段去掉了.....
问题:
这样给结构赋值可以吗? 不知道为什么 我赋值第一个结构时候可以
第2个就开始出问题然后提示退出程序了
再次麻烦各位了~
----------------解决方案--------------------------------------------------------
char *name;这里的问题!
----------------解决方案--------------------------------------------------------
不明白什么意思
----------------解决方案--------------------------------------------------------
估计后面2个scanf后没清空的原因!
----------------解决方案--------------------------------------------------------
scanf ("%f",&stu[i].score_c,&stu[i].score_ja);
你需要为它申请一块内存。
----------------解决方案--------------------------------------------------------
struct student
{
int num;
char *name;
float score_c;
float score_ja;
};
我觉得是因为 name没有分配内存导致的,这个只是一个指针,你输入的东西是存不进去的啊
----------------解决方案--------------------------------------------------------