error C2440: “初始化”: 无法从“void *”转换为“box *”

报错代码



修改



其他类似。

### 修改后的代码 为了修复编译错误和警告,以下是完整的修正版 C 代码: ```c #include <stdio.h> int i = 0; void Monkey_Go_Box(unsigned char x, unsigned char y) { printf("Step %d: monkey从%c走到%c\n", ++i, x, y); } void Monkey_Move_Box(unsigned char x, unsigned char y) { printf("Step %d: monkey把箱子从%c移到%c\n", ++i, x, y); } void Monkey_On_Box() { printf("Step %d: monkey爬上箱子\n", ++i); } void Monkey_Get_Banana() { printf("Step %d: monkey摘到香蕉\n", ++i); } int main() { unsigned char Monkey, Box, Banana; printf("请用a b c来表示猴子、箱子和香蕉的位置\n"); printf("Monkey\tBox\tBanana\n"); // 输入猴子位置 scanf("%c", &Monkey); // 吃掉缓冲区中的换行符 getchar(); // 输入箱子位置 scanf("%c", &Box); // 吃掉缓冲区中的换行符 getchar(); // 输入香蕉位置 scanf("%c", &Banana); printf("\n操作步骤如下\n"); if (Monkey != Box) { Monkey_Go_Box(Monkey, Box); } if (Box != Banana) { Monkey_Move_Box(Box, Banana); } Monkey_On_Box(); Monkey_Get_Banana(); return 0; } ``` ### 解决的问题说明 1. **类型定义错误**: - `unsigned int` 和 `unsigned char` 的拼写不正确。应改为标准形式 `unsigned int` 和 `unsigned char`。 2. **返回类型声明**: - 主函数 `main()` 应该返回整数类型的值 (`int`) 而不是 `void`[^1]。 3. **变量初始化**: - 变量 `i` 需要在全局范围内初始化为零以便计步器正常工作。 4. **输入处理**: - 使用 `scanf` 函数读取字符输入,并通过 `getchar()` 清除缓冲区中的多余换行符,防止后续输入受影响。 5. **格式化输出**: - 在 `printf` 中加入 `%c` 来显示具体的字符而不是地址或数值。 6. **逻辑优化**: - 增加了对用户提示信息的清晰度以及程序执行流程的连贯性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值