所以我正在编写一个程序,打印游戏中的关卡列表,以及每个级别的玩家数量。水平将由输入的健康点数量决定。我把我的do-while循环搞砸了,因为它应该读取所有输入,直到输入的数字-1,退出循环。我无法找到错误,所以如果有人能指出它我会很感激。
#include <stdio.h>
int main (void)
{
void updateLevel(int, int []);
void displayLevels(int []);
int point, c;
int Level [6];
for (c = 0; c < 6; c++)
Level [c] = 0;
do {
printf("\n Enter Player Points: ");
scanf("%d", &point);
{
if(point == -1)
{
break;
}
updateLevel(point, Level);
}
} while (1);
displayLevels(Level);
return (0);
}
void updateLevel(int p, int lev[])
{
if (p >= 0 && p <= 9) {
lev[0]++;
} else if (p >= 10 && p <= 19) {
lev[1]++;
} else if (p >= 20 && p <= 29) {
lev[2]++;
} else if (p >= 30 && p <= 39) {
lev[3]++;
} else if (p >= 40 && p <= 49) {
lev[4]++;
} else {
lev[5]++;
}
}
void displayLevel(int L[])
{
int c;
for (c = 0; c < 6; c++)
{
printf("\n Level = %d \t Counter = %d", c+1, L[c]);
}
}
答案 0 :(得分:1)
这甚至无法编译。我假设你的问题是什么?您声明并使用displayLevels
,但该函数定义为displayLevel
。然后它按照你的说法编译和工作(输入直到-1,然后打印&#39;级别&#39;输出,无论是什么。)
答案 1 :(得分:1)
这就是为什么剪切和粘贴代码和错误消息而不是重新输入它们很重要。
在标题中,它说:
interface{}
但是,如果您编译此代码,则会得到以下结果:
ID returned 1 exit status
第一个字母是ld returned 1 exit status
(ell),而不是l
(i)。 I
是链接器,它告诉我们存在链接器错误。
如果您在此输出行之前包含输出行:
ld
错误很明显。没有名为undefined reference to `displayLevels'
的函数。但有一个名为displayLevels
。所以你的函数名中有一个拼写错误。