zyh1104 发表于 2023-10-15 19:03:47

求代码错误 为什么没有输出?

#include <stdio.h>

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

      while (i <= 100);
      {      
                sum = sum + i;
                i = i + 1;
      }
      
        printf("结果是%d",sum);

      return 0;

}

不输出东西?

陶远航 发表于 2023-10-15 19:03:48

你的代码中存在一个常见的错误,那就是在 while 循环后面误加了一个分号。这个分号导致了 while 循环体为空,也就是说,程序会一直执行 while (i <= 100); 这个空循环,直到 i 大于 100。但是,由于 i 的值在这个循环中并没有改变,所以这个循环会无限进行下去,也就是所谓的无限循环。

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

#include <stdio.h>

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

    while (i <= 100) {
      sum = sum + i;
      i = i + 1;
    }

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

    return 0;
}


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

isdkz 发表于 2023-10-15 19:04:08

代码中的问题在于 while 循环后面多了一个分号,导致循环体为空,而下面的语句块则不在循环体内,因此只执行了一次,没有进入循环,导致程序没有输出结果。修改后的代码如下:

#include <stdio.h>

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

    while (i <= 100)
    {
      sum = sum + i;
      i = i + 1;
    }

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

    return 0;
}


同时建议在 printf 函数中加上换行符,方便观察输出结果。

Mike_python小 发表于 2023-10-15 19:05:09

你好,这段代码缺少了输出语句的 {} 花括号。

把 while (i <= 100); 的分号去掉即可,同时要在输出语句前加一个大括号:


#include <stdio.h>

int main() {
    int i = 1, sum = 0;
    while (i <= 100) {
      sum = sum + i;
      i = i + 1;
    }
    printf("结果是%d", sum);
    return 0;
}


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

希望能帮到你。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

zyh1104 发表于 2023-10-15 19:08:11

while后不加;
页: [1]
查看完整版本: 求代码错误 为什么没有输出?