目前我正在用C编写一个简单的程序,它读入用户在循环中输入的值。出于某种原因,当我初始化整数a
时,我得到一个随机值而不是我指定的值。任何帮助将不胜感激
#include <stdio.h>
int main()
{
char sName[10];
int sTime;
int a = 0;
printf("%d", &a);
printf("Please enter the name of your snail: ");
scanf("%s", &sName);
for(a = 10; a < 20; a = a + 1) {
printf("%d", &a);
printf("Please enter the %d time of your snail: ", &a + 1);
scanf(" %d ", &sTime);
}
return 0;
}
答案 0 :(得分:1)
改变这个:
printf("%d", &a);
到此:
printf("%d", a);
&a
是a
的地址(及int*
类型的地址,因此%d
格式错误)。 a
为您提供a
的价值。
您仍然需要&
中的scanf(" %d ", &sTime);
; scanf
需要sTime
的地址,因此它知道存储值的位置。
答案 1 :(得分:1)
您正在打印for(int i = 0; i < x2; i++) {
for(int j = 0; j < x2; j++) {
if(i > (x2-x1)/2 && j > (x2-x1)/2 && i <= x2-(x2-x1)/2 && j <= x2-(x2-x1)/2) {
pipeArray[i][j] = 1;
} else {
pipeArray[i][j] = 0;
}
}
}
的地址。你不希望a
在那里:
&
你做想要printf("%d", a);
&
,因为你需要告诉该函数在哪里(在什么地址)存储值。