当前位置: 代码迷 >> C语言 >> C语言新手 第四问--关于结构
  详细解决方案

C语言新手 第四问--关于结构

热度:79   发布时间:2007-01-09 16:20:20.0
C语言新手 第四问--关于结构

#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个就开始出问题然后提示退出程序了

再次麻烦各位了~

搜索更多相关的解决方案: 结构  C语言  

----------------解决方案--------------------------------------------------------
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没有分配内存导致的,这个只是一个指针,你输入的东西是存不进去的啊
----------------解决方案--------------------------------------------------------
  相关解决方案