无法在C中使用数字猜谜游戏

时间:2016-10-05 12:55:32

标签: c

试图在C中写一个程序,说出你猜对了正确数字的次数。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i, searchNumber, Number, rightGuess;
    rightGuess = 0;
    printf("Give your number: ");
    scanf("%d",&searchNumber);
    printf("\n\n Give 10 numbers: ");
    for(i=1;i<=9;i++){
        scanf("%d \n",&Number);
        if(Number == searchNumber){
            rightGuess++;
        }
    }

    printf("You guessed the number %d times",&rightGuess);
    return 0;
}

然而,每次我运行它,它说我猜数字6356736次。即使我只输了0次。有什么帮助吗?

2 个答案:

答案 0 :(得分:7)

也许你在printf()犯了错误。

如果存在名为var的变量,&var表示变量var所在的内存地址。也许你在程序中看到的数字6356736是内存地址,而不是变量var。

中的值

您必须更改此行才能打印变量rightGuess

的值
printf("You guessed the number %d times", &rightGuess);

到这一行。

printf("You guessed the number %d times", rightGuess);

答案 1 :(得分:5)

您对printf的电话应该是

printf("You guessed the number %d times", rightGuess);

即。对于rightGuess格式说明符,指针传递给%d。目前程序行为未定义! (它可能会输出rightGuess的地址,该地址占大数 - 但不要依赖于此;您需要使用%p来输出指针地址。)