c语言
计蒜客买房子
感觉代码没有问题,但是一运行不正确。
我的想法是:每循环一次,就用if检查一下,如果钱够了,立刻输出i,并且终止循环。
逻辑不对吧
你把第10行代码放在第14行代码下面就可以
【以下回答由 ChatGPT 生成】
首先,根据你提供的代码和问题描述,可以看出你的代码逻辑是没问题的。但是根据你提供的测试用例截图,我发现一个可能的问题,即测试用例中的房子序号是从1开始的,而你的代码输出的房子序号是从0开始的。
解决该问题的方法有两种:
方法一:
修改你的代码,使房子序号从1开始输出。你只需要将printf
语句中的i+1
改为i+2
即可,如下所示:
printf("成功购买第 %d 号房子", i+2);
方法二:
修改你的循环,使房子序号从1开始计数。在循环开始之前,将i
的初始值从0改为1,如下所示:
for (int i = 1; i < num; i++) {
// 省略了部分代码
// 判断钱是否足够购买房子
if (money >= house_price) {
printf("成功购买第 %d 号房子", i);
break;
}
// 省略了部分代码
}
以上是我提供的解决方案,根据你的问题描述,代码逻辑应该没问题,只是存在输出序号的问题。希望能够帮到你,如果还有其他问题,请随时提问。
【相关推荐】