作业:
编写一个无限循环的程序。在循环的每次迭代中,读入由用户输入的整数
N
(声明为int),如果N是非负的并且可以被5整除则显示N / 5,否则显示-1。使用三元运算符(?:)来完成此任务。 (提示:模数运算符可能很有用。)
我的解决方案:
#include<iostream>
using namespace std;
int main(){
int x;
cin>>x;
while(1) {
cin>>x;
int result;
cout<<" "<<endl;
result = (x>0 & (x%5==0)) ? int(x/5) : -1;
cout<<result;
}
}
我能够提出这个问题 但是程序的第一次运行没有给出输出
答案 0 :(得分:1)
逐行浏览程序。使用cin>>x
,您可以将数字读入x。第6行是while (1)
,1是真的,所以你进入循环。下一个cin>>x
将数字读入x,覆盖以前的内容。
答案 1 :(得分:1)
(x>0 && (x%5==0)) ? int(x/5) : -1;
^^
我认为您打算使用逻辑&&
运算符而不是按位&
运算符。
此外,您正在阅读x
两次并覆盖第一个读取值。
答案 2 :(得分:0)
好。首先是第一件事。您应该知道C ++逻辑AND运算符是&#34;&amp;&amp;&#34;而不是&#34;&amp;&#34; (你用过的那个)。看看这里:http://www.cplusplus.com/doc/tutorial/operators/。
答案 3 :(得分:0)
提示1:你真的需要在while循环上方的单身cin
吗?
提示2:您是否要在结果上方打印带换行符的空行?
提示3:您是否需要在没有换行符的情况下打印结果?
提示4:您是否打算使用按位&
而不是逻辑&&
。?
可选
提示1:您是否需要按5
对int
进行划分?