当用户输入名为numtest的函数名称时,我需要设计一个必须显示正,负或零的程序。当我输入数字0时,它仍然显示为,数字为负数。谁可以帮我这个事。谢谢。
#include <iostream>
using namespace std;
float numtest(float a, float b, float c)
{
if(a>1)
return a;
if(b<1)
return b;
if(c=0)
return c;
}
int main()
{
float num;
cout<<"Please enter number";
cin>>num;
if(num>1)
cout<<"number is positive";
if(num<1)
cout<<"number is negative";
if(num=0)
cout<<"number is zero";
return 0;
}
答案 0 :(得分:1)
首先,在检查相等性时,您必须使用==
而不是=
。=
符号指定R.H.S.到L.H.S.例如。 c=0
将c
中的值更改为0
,因此它应该是if(c==0)
。
现在,如果您想检查正数,则条件应为if(num>0)
,对于负数,则应为if(num<0)
。
最后,尝试使用else if
和else
而不是三个ifs
。
答案 1 :(得分:1)
当您想要进行相等比较时,看起来您已经解决了将0分配给num的古老问题。
if(num == 0){ ... }
另外,想想输入0.5或-0.5时会发生什么。在你的问题中,你提到使用你的函数(numtest)做某事,但你甚至没有在你的主函数中调用它
答案 2 :(得分:0)
我相信如果您将参数更改为:
,您的问题就会得到解决if(a>0)
if(a==)
if a<0)
因为你现在已经设置了它,所以你没有考虑0到1之间的无限数量(.10,.0000005等)。我们想要使用&#34; ==&#34;签署如此平等。
希望有所帮助!
答案 3 :(得分:0)
您的程序未使用numtest()
函数和使用的不需要的变量,测试编号为+ ve或-ve,您应该使用
对于正面:if(num>0)
或if(num>=1)
以防浮动if(num>=0.001)
对于否定:if(num<0)
或if(num<=-1)
以防浮动if(num>=-0.01)
对于零:if(num==0)
尝试以下程序:
#include <iostream>
#include<conio.h>
void numtest(float num)
{
if(num>0)
cout<<"number is positive";
if(num<0)
cout<<"number is negative";
if(num==0)
cout<<"number is zero";
}
void main()
{
float n;
cout<<"Please enter number";
cin>>n;
numtest(n);
getch();
}