- context:* I have this college assignment I should something like rush hour game..我有一个停车场,里面有汽车,有一辆特定的车(用 * 表示),应该离开停车场(出口在中间线最左边的列)。我应该移动这些车,然后把它弄出来。例如,下面是一个给定的停车场:
|1||1|| || || |
| || ||2||2||2|
| || ||*||*||*|
|3||3|| || || |
|3||3|| || || |
首先,我需要让用户选择一辆要移动的汽车,检查它是否存在于停车场中,如果不存在,则再次让他选择一辆汽车。
char SelectCar(char lot[MAX_LOT_LENGTH][MAX_LOT_LENGTH], int Length){
char car;
bool exists = false;
printf("Enter the car you want to move:\n");
scanf("%c",&car);
for (int i = 0; i< Length; i++){
for (int j = 0; j<Length; j++){
if (lot[i][j] == car) {
exists = true;
}
}
}
if(!exists) {
printf("Invalid car id! enter again:\n");
car = SelectCar(lot,Length);
}
printf("car selected\n");
return car;
}
当我运行代码时,它跳过了scanf
函数(它甚至不要求输入汽车),所以当它进入for循环时,"car"
甚至不存在于lot中,所以它重新进入SelectCar
函数,当它到达scanf
(第二次)时,它只是崩溃并给我这个错误”:* 一米五分一秒 *
我不知道该怎么办(我甚至不明白问题出在哪里)
- 注:批次和长度由用户定义和接收。*
1条答案
按热度按时间j9per5c41#
我不知道该怎么办
保存时间并启用所有编译器警告,以便快速查看
char car; ... scanf("%d",car);
的问题scanf()
中的"%d"
需要指向int
的匹配指针。