Не можете получить десятичную дробь при использовании функций? - PullRequest
0 голосов
/ 30 октября 2018

Так что я практиковался в использовании функций и столкнулся с проблемой. Я сделал программу, которая делит два числа, которые вводит пользователь, но я использовал функцию, чтобы написать это. Теперь, когда я использую функцию, окончательный ответ, который я получаю, не является десятичным числом, хотя я использую двойной тип данных. Когда я пишу программу без использования функции, у меня не возникает никаких проблем, но как только я использую функцию, я не могу получить десятичное число. Буду очень признателен, если кто-нибудь сможет мне помочь! Спасибо!

Вот код:

double divide(num1,num2)
{
    double result;
    result = num1/num2;
    return result;
}

int main ()
{
    double num1;
    double num2;

    printf("Enter the first number: ");
    scanf("%lf", &num1);
    printf("Enter the second number: ");
    scanf("%lf", &num2);

    printf("The answer is: %lf", divide(num1,num2));

    return 0;
}

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Если вы попытаетесь скомпилировать с -Wall, вы должны получить сообщение об ошибке

warning: type of 'num1' defaults to 'int'

Изменить на double divide(double num1, double num2)

0 голосов
/ 30 октября 2018

Когда вы объявляете свою функцию, вам нужно указать тип, или по умолчанию это int:
Ваш double divide(num1,num2) читается как double divide(int num1,int num2) - но вы хотите double divide(double num1,double num2)

...