u013012497 2013-12-01 08:20 采纳率: 66.7%
浏览 2527
已采纳

c语言执行的结果是随机数是怎么回事?

#include
#include
struct stu
{
int num;
char name[2];
int Chinese;
int English;
int Maths;
int sum;
};
void main()
{
struct stu student[4]={{1,"ab",10,20,30},{2,"cd",40,50,60},{3,"ef",70,80,90}};
int i;
for(i=0;i<3;i++)
student[i].sum=student[i].Chinese+student[i].Maths+student[i].English;
for(i=0;i<3;i++)
if(student[3].sum<student[i].sum)
{ student[3].sum=student[i].sum;
strcpy(student[3].name,student[i].name);
}
printf("%s\n",student[3].name);
}

  • 写回答

2条回答

  • ccbysa 2013-12-01 11:36
    关注

    应该是char name[2]的问题。
    在C语言中字符串是以NULL(\0)结尾的,也就是说要多出一个字节,用来保存NULL。
    所以如果name[2]赋了"ab",那么NULL就没有空间存了。所以打印出的name不确定。

    测试一下

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

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题