C学生作业,数组值未传递给函数

Dav*_*vey 1 c arrays

我一直在将数组传递给函数时遇到问题.我将它传递给一个函数并更新它,然后在main中打印值,它们打印得很好.我将它们传递给另一个函数来评估它们,并且这些值由于某种原因不能成功.我已经尝试将它们作为const char和const int传递,或者只是作为char和int传递.他们仍然没有工作.

我落后于我的家庭作业,并以此为结局.你能看出我做错了什么吗?我在Ubuntu上编译GCC.正如我所说,main()中的相同循环产生了正确的结果,并且我正在以一种在设置值的早期函数中正常工作的方式将数组传递给函数.

在主()

evalGuesses(guessType, numberOfGuesses);
Run Code Online (Sandbox Code Playgroud)

在evalGuesses()中

void evalGuesses(char guessType[], int numberOfGuesses)
{
int count;

for(count = 0; count < numberOfGuesses; count++);
{
    printf("\n** Eval: option %c", guessType[count]);
}
return;
} // end evalGuesses
Run Code Online (Sandbox Code Playgroud)

Tho*_*sin 8

;在结束括号之后摆脱那个分号for.您拥有的代码现在相当于以下内容:

...
for( count = 0; count < numberOfGuesses; count++ ){
    ;   // means "do nothing", empty-statement
}
{
    printf( ... );
}
...
Run Code Online (Sandbox Code Playgroud)

虽然你似乎想要printf( ... );循环,但在这种情况下,你应该按照我在一开始的建议做.

  • @ThoAppelsin好眼睛.我没有抓到它哈哈. (2认同)
  • 我将补充一点,因为当你到达printf()时你没有在循环中做任何事情计数将索引一个元素超过数组的末尾.因此,您在单个printf()中看到的垃圾. (2认同)