#c #function #calculator #fare
Вопрос:
Я никогда не видел такой ошибки компиляции. И что такое int*? Ошибка говорит, что %d нужен int*, а не просто int, я использовал %d, за которым следует int var… но что мне делать с int*?
int main()
{
int hour, min, car;
printf("-------------------------------------n");
printf("n주차요금 계산 프로그램n");
printf("n주차 시간을 입력하세요.nn 시간:n");
scanf("%d",hour);
printf("n 분:n");
scanf("%d", min);
printf("n%d시간 %d분n", hour, min);
printf("n당신의 차종은 무엇입니까?n");
printf("n 1.경차 2.기타n");
scanf("%d", car);
Комментарии:
1. Как
hour
выглядит декларация?int hour;
? Затем используйтеscanf("%d", amp;hour);
.2. @Sunfare1944 — Где вы узнали, что можете передавать переменную по значению
scanf
?3. Не беспокойтесь о том, что
int *
сейчас значит. Это просто означает, что вам нужно использоватьamp;
большинство переменных, которые вы заполняетеscanf
. Все, кроме струн.4. C-это передаваемое значение: параметры для
scanf
копирования и имеют время жизни этой функции. По этой причине нет способа напрямую вернуть параметр; вы должны передать его адрес памяти. С помощью струн вы уже есть.
Ответ №1:
scanf
нуждается в указателе в качестве второго аргумента.
int main()
{
int hour, min, car;
printf("-------------------------------------n");
printf("n주차요금 계산 프로그램n");
printf("n주차 시간을 입력하세요.nn 시간:n");
scanf("%d",amp;hour);
printf("n 분:n");
scanf("%d", amp;min);
printf("n%d시간 %d분n", hour, min);
printf("n당신의 차종은 무엇입니까?n");
printf("n 1.경차 2.기타n");
scanf("%d", amp;car);
}
Вы узнаете почему, когда изучите указатели. А пока просто не забудьте поставить этот amp;
оператор перед переменной.