2013-09-03 3 views
-5

Почему этот базовый код возвращает неправильное значение? Я относительно новичок в программировании, и я не понимаю, почему эта основная функция не работает. У меня есть рабочая версия этой программы, поэтому я не понимаю эту проблему.Почему мой printf возвращает неверное значение?

#include <stdio.h> 
int main (void) 
{ 

int fahrenheit; 

printf("Enter the temperature in degrees fahrenheit:\n"); 
scanf("%d", &fahrenheit); 
printf("\n%d \n", &fahrenheit); 
system("PAUSE"); 

return 0; 

} 

Выход:

Enter the temperature in degrees fahrenheit: 
53 

2686788 
Press any key to continue . . . 
+1

Чтобы быть педантичным: вы никогда не проверить * возвращаемого значения * из 'Е()', так что вы не знаете, является ли это правильно или нет. – Emmet

+2

Пожалуйста, избегайте 'system (" pause ");'. Я знаю, что инструкторы могут предложить вам использовать его по разным причинам, но вы должны стараться избегать появления вредных привычек. –

ответ

10

printf не ожидает, что указатель на ваши переменные как scanf, он ожидает, что данные.

Попробуйте printf("\n%d \n", fahrenheit);

+0

Спасибо! Я никогда не объяснял это в классе. –

+0

[CPPReference] (http://en.cppreference.com/w/) - ваш друг :-). –

4

Просто возьмите & прочь PRINTF линии.

Изменение:

printf("\n%d \n", &fahrenheit); 

To:

printf("\n%d \n", fahrenheit); 
Смежные вопросы