首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序编译、运行,但不以DevC++结尾

程序编译、运行,但不以DevC++结尾
EN

Stack Overflow用户
提问于 2014-12-14 23:32:41
回答 3查看 1.1K关注 0票数 0

我编写了一个程序,用来将所有小于或等于N的奇数相加--这不是最有效、最雄辩的程序,但它在Codepad.org上的编译器中工作,在DevC++中不工作。通常,当我编写的程序被困在某种无限循环中时,程序会在DevC++和Windows中崩溃,并让我知道。

在这里,程序编译和运行,但只是坐在与光标闪烁,什么也不做。不管我让它坐多久,窗户都不能阻止它,什么都不会发生,程序也不会完成。我猜这是DevC++的一个问题,除非这是我的代码出现的问题。有人能向我解释一下这里发生了什么吗?

这是我的代码:

代码语言:javascript
复制
#include <iostream>
using namespace std; 

int odd(int N)
{
    int i;
    int sum = 0;
    for(i = 0; i <= N; ++i)
    {
        while((i % 2) != 0)
        {
            sum = sum + i;
        }
    }

    return sum;
}

int main()
{
    int N;

    cout << "Pick a value: ";

    cin >> N;

    cout << "The sum of all numbers <= to " << N << " is: " << odd(N);

    return 0;
}

我已经对if语句进行了建议的更改,也出现了同样的问题:

代码语言:javascript
复制
#include <iostream>
using namespace std; 

int odd(int N)
{
    int i;
    int sum = 0;
    for(i = 0; i <= N; ++i)
    {
        if ((i % 2) != 0)
        {
            sum = sum + i;
        }
    }

    return sum; 
}


int main()
{
    int N;

    cout << "Pick a value: ";

    cin >> N;

    cout << "The sum of all odd numbers <= to " << N << " is: " << odd(N); 

    return 0;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-14 23:36:55

代码语言:javascript
复制
  while((i % 2) != 0)
    {
        sum = sum + i;
    }

这是一个无限的loop.Because,如果(i % 2 != 0)是真的话,那么程序将再次增加和,您可能要做的again.What是有一个if语句而不是while

票数 2
EN

Stack Overflow用户

发布于 2021-05-11 15:53:12

似乎编辑是工作的,请尝试删除旧的输出文件和重建和重新编译整个程序。产出如下:

选择一个值: 52

所有奇数<=与52之和为: 676。

进程在1.034秒后退出,返回值为0,按任意键继续。。。

票数 0
EN

Stack Overflow用户

发布于 2021-05-17 23:09:43

确保上一次运行的窗口已关闭,否则编译器将不会重新编译,但在更改it.you之前只运行上一个版本,可能会将此视为调试模式中底部所述的错误。while()是一个无限循环,因为我在while()或它的{}中没有被更改,如果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27475368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档