2015-03-28 2 views
-3

Мне нужно создать программу, в которой он должен отображать положительный, отрицательный или нулевой, когда пользователь вводит номер с именем функции numestest. когда я ввожу номер 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; 
} 
+2

', если (с = 0)' не делать то, что вы думаете, что он делает. Также не сравнивайте значения 'float' или' double' для равенства напрямую. –

+2

Подсказка: отрицательный означает «меньше нуля». –

+1

О 'c = 0', ваш компилятор должен вас предупредить. – chris

ответ

1

Прежде всего, при проверке равенства вы должны использовать == вместо = .the = знак присваивает R.H.S. к L.H.S. Например. c=0 изменяет значение в c на 0, поэтому вместо этого оно должно быть if(c==0).

Теперь, если вы хотите проверить положительные числа, условие должно быть if(num>0), а для отрицательных чисел должно быть if(num<0).

И наконец, попробуйте использовать else if и else вместо трех ifs.

+0

ладно большое спасибо. понял.высоко оценил – Vikramathithan

+1

'для отрицательных чисел, это должно быть, если (num> 0)' Я думаю, что вы сделали опечатку, должно быть 'num <0' –

+0

@ AlejandroDíaz: Спасибо, что указали! Отредактировал мой ответ. :) –

1

Похоже, вы поставили старую проблему назначения 0 на num, если хотите сравнить равенство.

if(num == 0){ ... } 

Также подумайте о том, что произойдет, когда вы введете 0,5 или -0,5. И в вашем вопросе вы упоминаете с помощью функции (numtest), чтобы сделать что-то, но ваш даже не назвав его в основной функции

+0

в порядке большое спасибо. понял. очень признателен – Vikramathithan

0

Я считаю, что ваша проблема будет решена, если вы изменили свои параметры:

if(a>0) 

if(a==)

if a<0)

Потому что они, как вы его установить теперь вы без учета бесконечного количества чисел между 0 и 1 (.10, .0000005 и т.д.). И мы хотим использовать знак «==» для такого равенства.

Надеюсь, что это поможет!

0

Ваша программа не использует numtest() функцию и нежелательной переменные, и для числа испытаний является анолит или -ve вы должны использовать

Для Positive: if(num>0) или if(num>=1) в случае поплавка if(num>=0.001)

Для Negative : 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(); 

}