鱼C论坛

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

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

[复制链接]
发表于 2023-10-15 19:03:47 | 显示全部楼层 |阅读模式
3鱼币
#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 的值,也就是 1100 的和。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案

最佳答案

查看完整内容

你的代码中存在一个常见的错误,那就是在 while 循环后面误加了一个分号。这个分号导致了 while 循环体为空,也就是说,程序会一直执行 while (i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 的值,也就是 1100 的和。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 函数中加上换行符,方便观察输出结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 格式符来表示输出整数类型的变量。如果是其他类型的变量,需要使用相应的格式符。

希望能帮到你。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-10-15 19:08:11 | 显示全部楼层
while后不加;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 21:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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