鱼C论坛

 找回密码
 立即注册
查看: 1949|回复: 4

[已解决]求代码错误 为什么没有输出?

[复制链接]
发表于 2023-10-15 19:03:47 | 显示全部楼层 |阅读模式
3鱼币
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int i = 1,sum = 0;

  5.         while (i <= 100);
  6.         {      
  7.                 sum = sum + i;
  8.                 i = i + 1;
  9.         }
  10.         
  11.         printf("结果是%d",sum);

  12.         return 0;

  13. }
复制代码

不输出东西?
最佳答案
2023-10-15 19:03:48
你的代码中存在一个常见的错误,那就是在 while 循环后面误加了一个分号。这个分号导致了 while 循环体为空,也就是说,程序会一直执行 while (i <= 100); 这个空循环,直到 i 大于 100。但是,由于 i 的值在这个循环中并没有改变,所以这个循环会无限进行下去,也就是所谓的无限循环。

你应该将代码修改为以下形式:

  1. #include <stdio.h>

  2. int main() {
  3.     int i = 1, sum = 0;

  4.     while (i <= 100) {
  5.         sum = sum + i;
  6.         i = i + 1;
  7.     }

  8.     printf("结果是%d", sum);

  9.     return 0;
  10. }
复制代码


在这个修正后的代码中,while 循环后面没有分号,所以 sum = sum + i;i = i + 1; 这两行代码会在 i 小于或等于 100 的情况下反复执行。当 i 大于 100 时,循环结束,然后程序会打印出 sum 的值,也就是 1100 的和。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案

最佳答案

查看完整内容

你的代码中存在一个常见的错误,那就是在 while 循环后面误加了一个分号。这个分号导致了 while 循环体为空,也就是说,程序会一直执行 while (i
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-10-15 19:03:48 | 显示全部楼层    本楼为最佳答案   
你的代码中存在一个常见的错误,那就是在 while 循环后面误加了一个分号。这个分号导致了 while 循环体为空,也就是说,程序会一直执行 while (i <= 100); 这个空循环,直到 i 大于 100。但是,由于 i 的值在这个循环中并没有改变,所以这个循环会无限进行下去,也就是所谓的无限循环。

你应该将代码修改为以下形式:

  1. #include <stdio.h>

  2. int main() {
  3.     int i = 1, sum = 0;

  4.     while (i <= 100) {
  5.         sum = sum + i;
  6.         i = i + 1;
  7.     }

  8.     printf("结果是%d", sum);

  9.     return 0;
  10. }
复制代码


在这个修正后的代码中,while 循环后面没有分号,所以 sum = sum + i;i = i + 1; 这两行代码会在 i 小于或等于 100 的情况下反复执行。当 i 大于 100 时,循环结束,然后程序会打印出 sum 的值,也就是 1100 的和。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-10-15 19:04:08 | 显示全部楼层
代码中的问题在于 while 循环后面多了一个分号,导致循环体为空,而下面的语句块则不在循环体内,因此只执行了一次,没有进入循环,导致程序没有输出结果。修改后的代码如下:

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int i = 1, sum = 0;

  5.     while (i <= 100)
  6.     {
  7.         sum = sum + i;
  8.         i = i + 1;
  9.     }

  10.     printf("结果是%d", sum);

  11.     return 0;
  12. }
复制代码


同时建议在 printf 函数中加上换行符,方便观察输出结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-10-15 19:05:09 | 显示全部楼层
你好,这段代码缺少了输出语句的 {} 花括号。

把 while (i <= 100); 的分号去掉即可,同时要在输出语句前加一个大括号:
  1. #include <stdio.h>
  2. int main() {
  3.     int i = 1, sum = 0;
  4.     while (i <= 100) {
  5.         sum = sum + i;
  6.         i = i + 1;
  7.     }
  8.     printf("结果是%d", sum);
  9.     return 0;
  10. }
复制代码

注意在输出语句中,要使用 %d 格式符来表示输出整数类型的变量。如果是其他类型的变量,需要使用相应的格式符。

希望能帮到你。

球一个最佳答案谢谢啦!这对我非常重要!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-10-15 19:08:11 | 显示全部楼层
while后不加;
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 12:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表