试图在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次.有帮助吗?
也许你犯了一个错误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)
你的电话printf应该是
printf("You guessed the number %d times", rightGuess);
即不一个传递指针到rightGuess对应于所述%d格式说明.目前程序行为未定义!(它可能正在输出rightGuess大量帐户的地址- 但不要依赖于此;您需要使用%p输出指针地址.)