无法在C中使用猜数游戏

KYC*_*KYC 5 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;
}
Run Code Online (Sandbox Code Playgroud)

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

soh*_*ang 7

也许你犯了一个错误printf().

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

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

printf("You guessed the number %d times", &rightGuess);
Run Code Online (Sandbox Code Playgroud)

到这一行.

printf("You guessed the number %d times", rightGuess);
Run Code Online (Sandbox Code Playgroud)


Bat*_*eba 5

你的电话printf应该是

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

一个传递指针rightGuess对应于所述%d格式说明.目前程序行为未定义!(它可能正在输出rightGuess大量帐户的地址- 但不要依赖于此;您需要使用%p输出指针地址.)