请教结构体赋值的方法

麟镜禅 2011-05-05 12:19:57
初学,第一次写关于结构体的东西,问题很严重啊。。
不知道这样行不?
typedef struct student
{
int sco;
char name[10];
}stu;

main()
{
stu *p;
int i,num;
printf("请输入有多少人?");
scanf("%d",&num);
for(i=0;i<num;i++)
{ printf("请输入(%d)号姓名",i+1);

printf("请输入(%d)号成绩",i+1);
scanf("%d",&p[i].sco);
}


...全文
90 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
w5320 2011-05-05
  • 打赏
  • 举报
回复
结构体指针引用结构体里面的成员要用->不是.
楼主错太多了。

typedef struct student
{
int sco;
char name[20];
}stu;

main()
{
stu *p;
int i,num;
printf("请输入有多少人?");
scanf("%d",&num);
p=(stu*)malloc(sizeof(stu*num);
for(i=0;i<num;i++)
{
printf("请输入(%d)号姓名",i+1);
scanf("%s",&p[i]->name);
printf("请输入(%d)号成绩",i+1);
scanf("%d",p[i]->sco);
}
....................
有点笨 2011-05-05
  • 打赏
  • 举报
回复

何来 p[i]? p又不是数组
pengzhixi 2011-05-05
  • 打赏
  • 举报
回复
stu*p=(stu*)malloc(num*sizeof(stu));
for(i=0;i<num;i++)
{ printf("请输入(%d)号姓名",i+1);

printf("请输入(%d)号成绩",i+1);
scanf("%d",&(p[i].sco));
}
麟镜禅 2011-05-05
  • 打赏
  • 举报
回复
多谢,已经解决了~十分感谢~
w5320 2011-05-05
  • 打赏
  • 举报
回复
搞错了,申请后,用[],就不是指针了...

typedef struct student
{
int sco;
char name[20];
}stu;

main()
{
stu *p;
int i,num;
printf("请输入有多少人?");
scanf("%d",&num);
p=(stu*)malloc(sizeof(stu)*num);
if(!p)
{
printf("Out of memory!\n");
return 1;
}
for(i=0;i<num;i++)
{
printf("请输入(%d)号姓名",i+1);
scanf("%s",&p[i].name);
printf("请输入(%d)号成绩",i+1);
scanf("%d",&p[i].sco);
}
....................
我真的是琦琦 2011-05-05
  • 打赏
  • 举报
回复

main()
{
stu *p;
int i,num;
printf("请输入有多少人?");
scanf("%d",&num);
p=(stu*)malloc(sizeof(stu)*num);

for(i=0;i<num;i++)
{ printf("请输入(%d)号姓名",i+1);

printf("请输入(%d)号成绩",i+1);
scanf("%d",&p[i].sco);
}

苏墨 2011-05-05
  • 打赏
  • 举报
回复
",&p[i].这是什么意思、、???
screwzm 2011-05-05
  • 打赏
  • 举报
回复
typedef struct student
{
int sco;
char name[10];
}stu;

main()
{
stu p[100];//改成这样就行了,输入最大的人数可以自己定义
int i,num;
printf("请输入有多少人?");
scanf("%d",&num);
for(i=0;i<num;i++)
{ printf("请输入(%d)号姓名",i+1);

printf("请输入(%d)号成绩",i+1);
scanf("%d",&p[i].sco);
}
w5320 2011-05-05
  • 打赏
  • 举报
回复

p=(stu*)malloc(sizeof(stu)*num);
if(!p)
{
printf("Out of memory!\n");
return 1;
}

上面少了半个括号,改顺便加个检测语句,记得要包含malloc.h头文件

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧