我正在开发最新的新功能。任何解释都会很棒,因为我是编程新手。我不知道如何解决这个问题,因为我得到的错误是: 18 '{' 标记之前有语法错误
20 case 标签不在 switch 语句内
21(同上)
22(同上)
23 `default' 标签不在 switch 语句内
29 [警告] 在返回 void 的函数中“返回”一个值
32 [警告]赋值使指针来自整数而不进行强制转换
34 [警告] 在返回 void 的函数中“返回”一个值
void moveCar(char board[], char vehicle, char direction, int distance)
{
int i;
int position, newPosition;
int offset;
for (i = 0; i < size; i++) //the main loop for the vehicles and user's input
{
if(isalpha(vehicle))//vehicles for all letters but 'x'
{
if(board[i] == vehicle)//vehicles on board
{
swtich(direction)
{
case 'r': offset = 1; break;
case 'l': offset = -1; break;
case 'u': offset = -8; break;
case 'd': offset = 8; break;
default: printf("invalid direction"); break;
newPosition = position + offset;
if(newPosition != '.')
{
printf("invalid move.");
return 0;
}
board = '.';
board[newPosition] = vehicle;
return 1;
}
}
}
}
最佳答案
看起来您将 Switch 拼写为 Swtich,编译器无法识别它,并且 case 语句将无法编译。
此外,您过早关闭 switch 语句。如果您希望这些命令仅在默认情况下执行,请将它们移到中断之前。如果您希望它们针对每种情况执行,请将它们完全移到 switch 语句之外
关于我的函数中的 Case/Break 和 '{',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138498/