当我构建并运行我的代码时,它会立即返回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;
}
答案 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语句永远不会被执行。