我剛剛開始使用C,我無法得到一個簡單的for
循環內循環函數返回一個布爾。該計劃是一個簡單的猜謎遊戲。for循環不會循環函數內部 - C
這裏是我的代碼:
//standard input and output header
#include <stdio.h>
#include <conio.h>
#include <stdbool.h>
bool CheckGuess(int guess, int nums[]);
int main(void)
{
int nums[5];
int i;
int userGuess;
for (i = 0; i < sizeof(nums)/sizeof(int); i++)
{
nums[i] = 1 + rand() % 5;
}
printf("Guessing Game\n\n");
printf("Guess a number between 1 and 5: ");
scanf("%d", &userGuess);
if (CheckGuess(userGuess, nums))
{
printf("You win!");
}
else
{
printf("You lose!\nThe correct numbers are:\n\n");
for (i = 0; i < sizeof(nums)/sizeof(int); i++)
{
printf("%d\n", nums[i]);
}
}
//get character, wait/pause
getch();
}
bool CheckGuess(int guess, int nums[])
{
int z;
for (z = 0; z < sizeof(nums)/sizeof(int); z++)
{
printf("%d\n", z); //z just stops at 0 all the time
if (guess == nums[z])
{
return true;
}
}
return false;
}
這個條件'sizeof(nums)/ sizeof(int)'看起來相當可疑。你能解釋一下你想用這個做什麼嗎? – FrustratedWithFormsDesigner
您是否嘗試過打印sizeof(nums)?對於術語「陣列衰減」加上一個快速谷歌應該讓你去。 – stonemetal
[C編程語言中的數組的大小?](http://stackoverflow.com/questions/1975128/sizeof-an-array-in-the-c-programming-language) – Blastfurnace