名叫黑客的技术小白 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条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大