qq_67658811 2022-03-11 05:33 采纳率: 100%
浏览 39
已结题

1-100和运算中未对sum赋值

刚刚学习c语言,用的dev C++。在打1-100所有的数之和时忘记给 sum 赋值,但是语法上却没有出错,也没有给出垃圾值,但是结果为5051,多出了一个1。用 dev C++试了一个不复制,直接输出的语句。结果答案是0.和书上说的会给出垃圾值不一样。请帮忙解答!
*
 int i, sum ;
 for(i = 1; i <= 100; ++i)
    {sum = sum + i;
   }
 printf("1到100的所有数之和为%d\n",sum);
 

在dev 上的运行结果

1到100的所有数之和为5051

总结:为啥sum的结果为5051

  • 写回答

5条回答 默认 最新

  • 於黾 2022-03-11 06:21
    关注

    你觉得5051不是垃圾值吗
    垃圾值之所以垃圾,就是因为没用啊
    如果你不给变量赋初值,那么c语言会随便给它分配一个内存,并且不初始化
    那么它到底是个什么值是不确定的,有可能开机之后就没有使用过,那就是0
    也有可能是其它程序使用过的,残留了一堆不知道干什么的数据
    如果一个算术结果不确定,那它就是个垃圾值,因为你没法拿来做任何用处

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月11日
  • 创建了问题 3月11日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部