Прошу помочь найти ошибку.
Задача: Описать функцию Sign(X) целого типа, возвращающую для вещественного числа X следующие значения: –1, если X < 0; 0, если X = 0; 1, если X > 0. С помощью этой функции найти значение выражения Sign(A) + Sign(B) для данных вещественных чисел A и B.
Вот что я сделал:
Код
#include <conio.h>
#include <stdio.h>
#include <math.h>
float Sign(float& X)
{
if(X<0) return -1;
if(X=0) return 0;
if(X>0) return 1;
}
int main()
{
float A, B;
printf("Write 2 numbers, please:\n");
scanf("%f %f", &A, &B);
printf("Result: %f", Sign(A)+Sign(B));
getch();
return 0;
}
Но функция постоянно возвращает 0. Что не так?
Добавлено (09.04.2014, 22:40)
---------------------------------------------
Сделал сам :
Код
#include <conio.h>
#include <stdio.h>
#include <math.h>
int Sign(float& X)
{
if(X<0) return -1;
else
if(X==0) return 0;
else
if(X>0) return 1;
}
int main()
{
float A, B;
printf("Write 2 numbers, please:\n");
scanf("%f %f", &A, &B);
printf("Result: %d", Sign(A)+Sign(B));
getch();
return 0;
}
Оказывается return не только возвращает значение, но и выходит из функции.