为什么答案不会显示
Why answers won't show
我正在学习 c++,说实话,我是新手,犯了基本错误。 我已经开始编写代码来显示键入的数字是否可以被 2、4、5、8、10 整除到 5 次
问题是它没有显示答案...
#include <iostream>
using namespace std;
int main() {
int num;
cout << "type in number to check if number is divisible by 2, 4, 5, 8, 10" << endl;
cin >> num;
switch (num) {
case 1:
if (num / 2 == 0) {
cout << num << "is divisble by 2" << endl;
}
case 2:
if (num / 4 == 0) {
cout << num << "is divisible by 4" << endl;
}
case 3:
if (num / 5 == 0) {
cout << num << "is divisible by 5" << endl;
}
case 4:
if (num / 8 == 0) {
cout << num << "is divisible by 8" << endl;
}
case 5:
if (num / 10 == 0) {
cout << num << "is divisible by 10" << endl;
}
num++;
if (num == 5) break;
}
return 0;
}
你对switch
语句的理解是不对的。
switch(num) {
case 1 :
// This block will be executed only when num is equal to 1.
if (num/2 == 0) {
cout<<num<<"is divisble by 2"<<endl;}
对于您的问题,您只需要一系列if
语句。
cin >>num;
if (num % 2 == 0) { // Not if ( num/2 == 0)
cout<<num<<"is divisble by 2"<<endl;
}
if (num % 4 == 0){
cout<<num<<"is divisible by 4"<<endl;
}
if (num % 5 == 0) {
cout<<num<<"is divisible by 5"<<endl;
}
if (num % 8 == 0){
cout<<num<<"is divisible by 8"<<endl;
}
if (num % 10 == 0)
{
cout<<num<<"is divisible by 10"<<endl;
}
您似乎认为将一个整数除以另一个整数会返回余数。事实并非如此。num
等于6
的num / 2
将返回3
并且对于等于7
num
将返回相同的结果。
你想要的是取模运算符%
它返回除法余数的值。 所以,对于6 % 2
你会得到0
,对于7 % 2
你会得到1
。
另请参阅:https://en.cppreference.com/w/cpp/language/operator_arithmetic
你不应该使用除法运算符来检查你是否得到任何余数。相反,您应该使用取模运算符来检查是否得到任何余数。 例如:
x = 10 % 4
会提醒您 2,因为 10 除以 4 的结果在 2
。您可以在 c++ 中的运算符中阅读有关运算符的更多信息。
您也可以在 switch 语句中添加一个检查,以检查 num == 是否为 0
switch(num != 0)
您可以对
switch(num != 0){
case 1:
if( (num % 2) == 0){
cout << num << " is divisible by 2" << endl;
}
case 2:
if( (num % 4)== 0){
cout << num << " is divisible by 4" << endl;
}
case 3:
if((num % 5) == 0){
cout << num << " is divisible by 5" << endl;
}
case 4:
if((num % 8) == 0){
cout << num << " is divisible by 8" << endl;
}
case 5:
if((num % 10 )== 0){
cout << num << " is divisible by 10" << endl;
}
num++;
if(num == 5)break;
希望对您有所帮助!
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 我的程序将 26 个字母转换为 ascII 没有显示正确答案
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- 如何在 WxWidgets 中显示方程式的答案?
- 删除矢量显示代码 c++ 段时答案更改
- 霍纳斯定律需要代数帮助,显示错误的答案 c++
- 为什么答案不会显示
- 当总和本身显示为180时,当我从两个角度的总和中提取180时,我会得到错误的答案
- 牛顿方法找到立方根,答案每次都显示为0
- 以C++显示时带有单引号和双引号的不同答案
- C++测验:使用矢量正确循环显示答案选项
- 如何使按钮显示随机答案
- C++构造函数并使其显示默认答案
- 为什么此代码不显示计算的正确答案,为什么它会无限循环?
- C++字符串。为什么答案显示字符串"狗"大于"猫",然后"猫"大于"狗"?
- 如何在程序中显示cin答案
- 使用类,但无法显示答案。
- 如何在c++中显示超过1小数点长的答案
- 阶乘在main中显示错误的答案.在函数中正确计算
- Xcode C++程序结果未显示正确答案