C - 整数抛出随机值?

时间:2016-10-19 21:32:52

标签: c

目前我正在用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;
}

2 个答案:

答案 0 :(得分:1)

改变这个:

printf("%d", &a);

到此:

printf("%d", a);

&aa的地址(及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); &,因为你需要告诉该函数在哪里(在什么地址)存储值。