名叫黑客的技术小白 2017-03-08 07:53 采纳率: 66.7%
浏览 1091
已采纳

c语言 结构体指针输出信息不完整

#include
struct stu{
char *name;

int num;

int age;

char group;

float score;

}stus[5] = {{"Zhou ping", 5, 18, 'C', 145.0},
{"Zhang ping", 4, 19, 'A', 130.5},
{"Liu fang", 1, 18, 'A', 148.5},
{"Wang ming", 3, 17, 'B', 144.5} }, *p=stus;
int main ()
{
int j;
int pjf ( struct stu w[],int i );
int charu ( struct stu a[],int n);
pjf (stus,5);
stus[4]=stus[3];
charu(stus,3);
for(j=0;j<5;j++)
{
printf("%s,%d,%d,%c,%f\n",p[j].name,p[j].num,p[j].age,p[j].group,p[j].score);
}
return 0;
}

int pjf ( struct stu w[],int i )
{
int sum=0;
for(i=0;i<5;i++)
{
sum+=w[i].score;
}
printf ("%f\n",sum/4.0);
return 0;
}

int charu ( struct stu a[],int n)
{

printf("请输入一条记录\n");
scanf("%s,%d,%d,%c,%f",&a[3].name,&a[3].num,&a[3].age,&a[3].group,&a[3].score);

return 0;
}
图片说明

应该输出5组信息但是只有3组,不知道什么原因,跪求大神

  • 写回答

2条回答

  • Tiger_Zhao 2017-03-08 08:37
    关注

    成员char *name 已经是个指针了,参数&a[3].name什么意思?
    还有使用scanf()时要用足够空间的数组,而不是指针成员。即使没有上面的错误,你也是试图往字符串常量"Wang ming"所在的内存写读取的内容,会溢出边界的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?