使用 if 语句时出错
Error while using if statements
#include "stdafx.h"
#include <iostream>
bool primeNumber( int x )
{
return (x==2,3,5,7) ;
}
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std ;
cout << "ENTER ONE DIGIT NUMBER - " ;
int x ;
cin >> x ;
if ( primeNumber )
cout << x << " IS A PRIME NUMBER " <<endl;
else
cout << x << " IS NOT A PRIME NUMBER " << endl;
return 0;
}
请帮助我..每次结果都相同,即"x"是质数..还建议更改...我只是一个初学者,所以也建议改进我的代码的方法
试试这个:
if ( primeNumber(x) )
而不是
if ( primeNumber )
并更改您的退货声明,例如
return x == 2 || x == 3 || x == 5 || x == 7;
如果要比较值。
return (x==2,3,5,7)
这不会像您认为的那样,逗号分隔的表达式返回列表中最后一个表达式的值,您primeNumber
方法基本上总是返回计算结果为 true
的7
。
您必须将值与每个值进行比较,例如:
return x == 2 || x == 3 || x == 5 || x == 7;
此外,正如 Rahul 指出的那样,您不是在调用该方法,而只是将指向函数的指针进行比较 primeNumber
与 0 不同,这很true
。
此函数始终返回true
bool primeNumber( int x )
{
return (x==2,3,5,7) ;
}
因为在 return 语句中使用了逗号运算符,其值为 7,与 0 不同。
我想你的意思是以下几点
bool primeNumber( int x )
{
return ( x == 2 || x == 3 || x == 5 || x == 7 );
}
还有 if 语句中的条件
if ( primeNumber )
计算也始终为 true,因为 primeNumber
是不同于 0 的有效函数指针。
你必须写
if ( primeNumber( x ) )
至于我,那么我会这样写
if ( primeNumber( x % 10 ) )
因为没有什么可以阻止用户输入包含多个数字的数字。
函数可以通过以下方式定义
bool primeNumber( unsigned int x )
{
bool prime = ( x == 2 ) || ( x % 2 != 0 && x != 1 );
for ( unsigned int i = 3; prime && i * i <= x; i += 2 )
{
prime = x % i != 0;
}
return prime;
}
相关文章:
- 访问者访问变体并返回不同类型时出错
- 在Linux for Windows上编译C++代码时出错
- 读取文件的最后一行并输入到链接列表时出错
- 重载操作程序时出错>>用于类中的字符串 memebr
- 调用专用模板时出错"no matching function for call to [...]"
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 我的简单if-else语句是如何无法访问的代码
- 有一个打印语句的函数是一种糟糕的编程实践吗
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么是0;C++中的有效语句
- C++ 使用 OpenMP 时,如果 for 循环在 if else 语句中出错
- R6010 执行后出错.if 语句在 for 循环中.[作业][中止已解决,发现新问题]
- 关闭文件流时出错,其存在取决于与 C++ 中的 .close() 语句相同的布尔值
- 预期在 if 和 else 语句上的语句上出错
- c++中克隆系统调用语句出错
- 在IF语句中添加时出错
- 编写 if 语句时出错"'=' : left operand must be l-value"
- 我的代码中的switch语句出错.(c++)
- 使用 if 语句时出错