我的程序运行并返回0,但它没有显示我给出的cout数据

时间:2013-10-24 03:07:37

标签: c++ math numbers cout

当我构建并运行我的代码时,它会立即返回0表示编程成功,但我希望它显示所有从100到200的可被4整除的数字。

这是我的代码......

#include <iostream>

using namespace std;

int main()
{
int num = 200;
int snum;

cout<<"The following numbers are all divisble by 4 and are inbetween 100 and 200\n";
while(num<99)
{
    snum = (num % 4) ;

    cout<<snum<<endl;
    cout<<num<<endl;

            if(snum = 0)
            {
                cout<< num << endl;
            }
            else
            {

            }
            num--;
}



return 0;
}

3 个答案:

答案 0 :(得分:2)

while条件应为while (num > 99)而不是while(num<99)(开头为假)

if条件应该是if (snum == 0)而不是if(snum = 0)=是赋值,而不是等于运算符)

else部分没有任何内容,您可以将其删除。我在下面的评论中添加了一些其他注释。

while (num > 99)
{
    snum = num % 4 ;  // no need for the parenthesizes

    if (snum == 0)
    {
        std::cout<< num << std::endl;
    }
    --num;    //pre-increment is preferred, although doesn't matter in this case
}

答案 1 :(得分:1)

你的循环永远不会执行因为条件

(num<99)

从一开始就是假的。你可能意味着

(num>99)

此外,if语句条件

(snum = 0)

snum设置为零,始终返回零,因此您可能需要

(snum == 0)

答案 2 :(得分:0)

您将num设置为200:

int num = 200;

然后,只有当数字 小于 99时,才会运行循环:

while(num<99)

您期望会发生什么?


这是 你如何在C中进行等于测试:

if(snum = 0)

在C中,使用==检查相等性:

if(snum == 0)

事实上,你拥有的东西(if (snum = 0))永远不会是真的,所以你的if语句永远不会被执行。