2015-04-18 3 views
-2

Я делаю программу, в которой я должен использовать локальную переменную в другой функции. Я могу это сделать, если переменным типом данных является int, но если он плавает, то он не работает.Как передать переменную float из одной функции в другую функцию.?

Я использую следующий код, чтобы передать значения для междунар:

int func1() 
{ 
    float a = 2.34, b = 3.45, res1; 
    int c = 2, d = 3, res2; 
    res1 = a * b; 
    res2 = c * d; 
    return res2; 
} 

int func2(int res2) 
{ 
    res2 = func1(res2); 
    printf("%d", res2); 
} 

так res2 сохраняет результат для значений INT и res1 сохраняет результат для значений с плавающей точкой. Из вышеприведенной логики я могу передать res2 (который является int), но не может передать значения res1 (который является float). Я не знаю, где мне не хватает смысла. Как это сделать. Пожалуйста, помогите, спасибо.!

+0

Работает ли этот код? Я действительно сомневаюсь в этом !! это не ошибка? – Haris

+0

не работает для int. :) –

+0

func1() не принимает никаких параметров, но вызывает его с параметром 'func1 (res2);' – Haris

ответ

0

тип функции указывает на то, что типы значений возвращает

// func1 returns values of type int 
int func1(void) { 
    // return 3.14169; // automagically convert to 3 
    // return "pi"; // error: cannot convert "pi" to a value of type int 
    return 42; 
} 

Если вы хотите функции возвращать значения типа с плавающей точкой, необходимо определить их с точки плавающего типа

// func3 returns a floating point value of type double 
double func3(void) { 
    // return 3.14159 // return the value 
    // return "pi"; // error: cannot convert "pi" to a value of type double 
    return 42;  // converts the int value to the same value in type double 
} 
+0

Возможно, вы имели в виду' float func3() 'вместо' double func3() '? –

+0

Я думаю, что 'double' (почти) всегда предпочитается над' float'. Я имел в виду любой тип с плавающей точкой. Но для примера я использую лучший тип, доступный в отсутствие дополнительной информации. – pmg

+0

@pmg вы хотите сказать, что я должен использовать double func1, тогда только он может передавать значения float в func2. –

Смежные вопросы