Новичок в C, переменные с плавающей запятой выводятся как «0.00» после арифметики.

#c

#c

Вопрос:

Я новичок в C, и у меня возникли проблемы с базовой программой, которая конвертирует доллары в евро. Когда я печатаю конечный результат, сумма в долларах и евро равна «0.00». Вот мой код:

 #include<stdio.h>

main()

{
    float usd = 0.00;
    float euro = 0.00;
    const float conversion = 0.75;

    printf("Please enter the amount of USD you want to convert to Euros: ");
    scanf("%f", amp;usd);

    euro = (usd * conversion);
    printf("n%.2f USD equals %.2f Euros.", amp;usd, amp;euro);


    getch();
    return 0;
}
  

Заранее спасибо

Комментарии:

1. Я вижу, что на это дан ответ, но вы можете предотвратить это в будущем, включив предупреждения для вашего компилятора. Если вы используете gcc, добавьте «-Wall», чтобы включить все предупреждения. Он сообщит вам, когда вы используете неправильный тип в полях printf и scanf. Visual Studio и другие будут иметь эквивалент.

Ответ №1:

Измените printf строку на эту:

 printf("n%.2f USD equals %.2f Euros.", usd, euro);
  

Вы передаете адреса usd и euro , а не сами значения.

Ответ №2:

 printf("n%.2f USD equals %.2f Euros.", usd, euro);
  

Ответ №3:

Вы не хотите ставить «amp;» перед именами ваших переменных в вашей printf() функции. Это вернет адрес переменной в памяти, а не значение, сохраненное в переменной. Попробуйте удалить их и посмотреть, получите ли вы результат, который вы ищете.

Комментарии:

1. это верно только для вызова printf , ему все еще нужен amp; в scanf .