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

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 14:21
    关注

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

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

报告相同问题?

问题事件

  • 系统已结题 3月19日
  • 已采纳回答 3月11日
  • 创建了问题 3月11日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装