C语言为什么无法输出结果?
#include<stdio.h>#defineN4structstudent{char*name;intnumber;intscore;};intmain(){type...
#include<stdio.h>
#define N 4
struct student
{
char *name;
int number;
int score;
};
int main()
{
typedef struct student stu;
stu arry[N];
int i;
for(i=0;i<N;i++)
{
printf("Input the student%d informaintion:\n",i+1);
scanf("%s",&arry[i].name);
scanf("%d",&arry[i].number);
scanf("%d",&arry[i].score);
}
for(i=0;i<N;i++)
{
printf("the student%d: %s %d %d\n",i+1,arry[i].name,arry[i].number,arry[i].score);
}
return 0;
} 展开
#define N 4
struct student
{
char *name;
int number;
int score;
};
int main()
{
typedef struct student stu;
stu arry[N];
int i;
for(i=0;i<N;i++)
{
printf("Input the student%d informaintion:\n",i+1);
scanf("%s",&arry[i].name);
scanf("%d",&arry[i].number);
scanf("%d",&arry[i].score);
}
for(i=0;i<N;i++)
{
printf("the student%d: %s %d %d\n",i+1,arry[i].name,arry[i].number,arry[i].score);
}
return 0;
} 展开
3个回答
展开全部
段错误
student的name没有申请空间
两个地方需要修改
struct student
{
char name[10];//大小可根据需求自己改变
int number;
int score;
};
第二个地方
scanf("%s",&arry[i].name);改为
scanf("%s",arry[i].name);
谢谢采纳
追问
恩,改了可以输出!如果我想用指针指向我输入的名字,要怎么样定义啊?
追答
那你指向的那块地址需要申请内存。比如说一个数字或者malloc的一块内存
展开全部
scanf("%s",&arry[i].name); scanf("%d",&arry[i].number); scanf("%d",&arry[i].score); }
你arry[i].name不要&号,因为你name是指针,你可以理解为name数组,这样好理解,呵呵
你arry[i].name不要&号,因为你name是指针,你可以理解为name数组,这样好理解,呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
struct student{char *name;int number;int score;};这儿应该有分号吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |