试图在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次。有什么帮助吗?
答案 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
来输出指针地址。)