У меня проблема с получением того же результата из математического уравнения, когда я использую функцию. Вот мой код.C конвертировать int, чтобы удвоить функцию
#include <stdio.h>
int main()
{
int a=5, b=2;
double c;
c = (double) a/b;
printf("%f\n", c);
c = Divide(a);
printf("%f\n", c);
return 0;
}
int Divide(int value)
{
return value =(double) value/2;
}
Когда я запускаю код, который я получаю:
2.500000
2.000000
Я пытаюсь получить 2.50000 для обоих. Я попытался изменить функцию на
double Divide(double value)
не повезло. Im новый для C и для кодирования вообще и Im застрял. Спасибо всем, кто может мне помочь.
'return value = (double) value/2;' выполняет float-p oint, в результате получится '2.5', а затем присваивает значение обратно' int' с усечением, возвращая '2'. Удаление части 'value =' обеспечит предполагаемое поведение. – owacoder
Благодарим вас за ответ. То, что вы написали, имеет смысл для меня. Я смог заставить эту функцию работать – jojonac