我有两个问题:
第一个问题是我不能for (apr = 0; apr < aprno; apr++)逐个添加字符.例如,如果我有aprno = 4,则在输入A之后它会要求第4个apr.但是当我输入AAAA时它会起作用...,它也仅适用于整数
第二个问题是char和int comparsion.我知道我无法比较它们,但我没有找到解决方案如何在任何地方进行.
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;
}
Run Code Online (Sandbox Code Playgroud)
pismapr看起来是一个数组char; 你无法将它直接与单一进行比较char.您只需要比较感兴趣的数组元素:
if (pismapr[apr] == 'A') poleapr[apr] = 1;
Run Code Online (Sandbox Code Playgroud)
PS我必须告诉你,这是我见过的最奇怪的C代码.goto你应该将代码块移动到函数中,然后在循环中调用它们,而不是随意跳转; 即
while (aprno < 1)
aprno = readaprno();
Run Code Online (Sandbox Code Playgroud)