程序必须决定正面,负面或零

时间:2015-03-28 13:12:38

标签: c++

当用户输入名为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;
}

4 个答案:

答案 0 :(得分:1)

首先,在检查相等性时,您必须使用==而不是==符号指定R.H.S.到L.H.S.例如。 c=0c中的值更改为0,因此它应该是if(c==0)

现在,如果您想检查正数,则条件应为if(num>0),对于负数,则应为if(num<0)

最后,尝试使用else ifelse而不是三个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();

}