Я писал программу c, задача которой заключалась в том, чтобы преобразовать градус Цельсия в Фаренгейт и наоборот. Я хотел, чтобы мой пользователя, чтобы обеспечить ввод в видеНеправильное выходное и предупреждающее сообщение '' Делает указатель из int ''
double, char
Если персонаж будет либо «F» для Фаренгейта к преобразованию Цельсия, или «C» для Цельсия до преобразования Фаренгейта. Я написал эту программу, чтобы сделать это. Программа
#include <stdio.h>
int main()
{
char in[10];
int i;
printf("Welcome to the Tempurate Conversion Enter a ");
scanf("%s %d", i, &in);
printf(i);
printf(in);
return 0;
}
Когда я компилирую эту программу, я получаю это предупреждение: The Warning
CtoF.c: In function 'main':
CtoF.c:8:4: warning: passing argument 1 of 'printf' makes pointer from integer w
ithout a cast [enabled by default]
c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include/stdio.h:294:37: note:
expected 'const char *' but argument is of type 'int'
я когда побежал к программе и дал этот вход: на вход
3 C
и получил этот выход: Выход
[email protected]
Я хочу знать смысл предупреждающего сообщения и что я могу сделать, чтобы исправить его.
'scanf ("% s% d ", i, &in);' -> 'scanf ("% d% s ", i, in);' (обратите внимание на порядок спецификаторов формата и удаленный символ амперсанда - это не то, как вы используете адрес оператора). –
@ H2CO3; Почему вы удалили '&' с 'i'? – haccks
@haccks Потому что я сделал опечатку. Я только хотел удалить его из 'in'. (Спасибо, что указали это.) –