运行第一个实例

时间:2011-12-29 11:56:50

标签: c++ while-loop ternary-operator

作业:

  

编写一个无限循环的程序。在循环的每次迭代中,读入由用户输入的整数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;
     }
}

我能够提出这个问题 但是程序的第一次运行没有给出输出

4 个答案:

答案 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:您是否需要按5int进行划分?