#c
#c
Вопрос:
В настоящее время я пишу простую программу на C, которая считывает значения, введенные пользователем в цикле. По какой-то причине, когда я инициализирую целое число a
, мне присваивается случайное значение, в отличие от указанного мной значения. Любая помощь была бы с благодарностью
#include <stdio.h>
int main()
{
char sName[10];
int sTime;
int a = 0;
printf("%d", amp;a);
printf("Please enter the name of your snail: ");
scanf("%s", amp;sName);
for(a = 10; a < 20; a = a 1) {
printf("%d", amp;a);
printf("Please enter the %d time of your snail: ", amp;a 1);
scanf(" %d ", amp;sTime);
}
return 0;
}
Комментарии:
1.
amp;a
возвращает АДРЕС переменной (например, указатель).2. еще одна ошибка заключается в том, что
" %d "
в последнем сканировании должно быть"%d"
(без пробелов). Иamp;sName
должно бытьsName
.
Ответ №1:
Измените это:
printf("%d", amp;a);
к этому:
printf("%d", a);
amp;a
это адрес a
(и это типа int*
, поэтому %d
это неправильный формат). a
дает вам значение a
.
Вам все еще нужен amp;
in scanf(" %d ", amp;sTime);
; scanf
нужен адрес sTime
, чтобы он знал, где хранить значение.
Ответ №2:
Вы печатаете адрес a
. Вы не хотите, чтобы amp;
там:
printf("%d", a);
Вам действительно нужен amp;
for scanf()
, потому что вам нужно указать этой функции, где (по какому адресу) хранить значение.