我正在练习我的C Prog语言 我决定创建一个带收银台功能的沙龙
它看起来很乱, 虽然我还在学习张贴在这里:http://pastebin.com/B2XaaCYV
它说变量“菜单”的运行时错误,但我试图重新检查它约5倍,我没有看到它的任何错误。 代码非常简单 像xy [0] [1] =默认0 =意思尚未购买。它的值仅为0/1。当你在挑选发型后实际购买它时,它将是1。
当然
xy[1][i] means price of xy[0][i]
我尝试使用其他技术,例如删除中断和更改变量名称,但它仍然说变量菜单的运行时错误
不知道是什么造成了错误。所以我希望有人能帮助我这个
答案 0 :(得分:1)
scanf("%1s",&menu);
没有! char
根本不是字符串。您希望获得单个字符,因此请使用getchar()
或scanf("%c",&menu);
。
相关错误发生在core_return
,您尝试将3个字符读入单个字符。另外,不要在子例程中调用main
。而是从子例程返回并在主体中放置一个循环。顺便说一下,'yes'
和'no'
无效。如果要比较字符串,则必须使用strcmp
:
// returns 1 if the user wants to go again
int another_menu(void)
{
char tmp[20];
printf("Do you want another service?");
for(;;){
scanf("%3s",tmp);
if(strcmp("y",tmp) || strcmp("yes",tmp))
return 0;
else if(strcmp("n",tmp) || strcmp("no",tmp))
return 1;
printf("Please specify either 'no' or 'yes': ");
}
}
使用编译器警告以更快地找到错误(GCC:-Wall -Wextra
)。