我有两个问题:
第一个问题是我无法输入 for (apr = 0; apr < aprno; apr++)
一个一个地添加字符。例如,如果我有 aprno = 4,在输入 A 后它会询问 4th apr.,但是当我输入 AAAA 时它会工作......,它也只适用于整数
第二个问题是 char 和 int 的比较。我知道我无法比较它们,但我没有找到如何在任何地方进行比较的解决方案。
addnoaprons:
system("cls");
printf("Add number of available aprons: ");
scanf("%d", &aprno);
goto addtypeaprons;
addtypeaprons:
if (aprno < 1) goto addnoaprons;
else {
system("cls");
printf("Add types for %d aprons total:", aprno);
for (apr = 0; apr < aprno; apr++)
{
system ("cls");
printf("Aprons total: %d", aprno);
printf("\n\nNo. %d apron type: ", apr + 1);
scanf("%c", &pismapr[apr]);
if (pismapr == 'A') poleapr[apr] = 1;
if (pismapr == 'B') poleapr[apr] = 2;
if (pismapr == 'C') poleapr[apr] = 3;
if (pismapr == 'D') poleapr[apr] = 4;
else goto addtypeaprons;
}
goto showaprons;
}
最佳答案
pismapr
看起来是一个 char
数组;您不能将它直接与单个 char
进行比较。您只需要比较感兴趣的数组元素:
if (pismapr[apr] == 'A') poleapr[apr] = 1;
附言我必须告诉你,这是我多年来见过的一些看起来最奇怪的 C 代码。与其使用 goto
跳来跳去,不如将代码块移动到函数中,然后在循环中调用它们;即,
while (aprno < 1)
aprno = readaprno();
关于无法比较字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16986042/