-1

当我构建并运行我的代码时,它立即返回 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;
}
4

3 回答 3

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
}
于 2013-10-24T03:14:02.563 回答
1

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

(num<99)

从一开始就已经是假的。你可能是说

(num>99)

此外,if 语句条件

(snum = 0)

设置snum为零,总是返回零,所以你可能是说

(snum == 0)
于 2013-10-24T03:11:09.733 回答
0

您设置num为 200:

int num = 200;

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

while(num<99)

你预计会发生什么?


不是您在 C 中进行等式测试的方式:

if(snum = 0)

在 C 中,用 来检查相等性==

if(snum == 0)

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

于 2013-10-24T03:23:15.123 回答