你的四个输出都是一样的 都是错误的四个输出应该不一样才对
时间: 2024-03-21 20:44:08 浏览: 39
非常抱歉,我的代码还有问题。在二分查找时,应该先将利率乘以365,再进行计算。以下是修改后的代码:
```
#include <stdio.h>
#include <stdbool.h>
double x, y;
int t;
bool checkIfRateAvailable(double rate) {
double balance = x;
for (int i = 0; i < t; i++) {
balance *= 1 + rate;
balance -= y;
if (balance <= 0) {
return true;
}
}
return false;
}
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%lf%lf%d", &x, &y, &t);
double left = 0.0, right = 1.0;
while (right - left > 1e-6) {
double mid = (left + right) / 2;
if (checkIfRateAvailable(mid / 365)) {
right = mid;
} else {
left = mid;
}
}
printf("%.2f%%\n", right * 100);
}
return 0;
}
```
这次输出的结果应该是正确的了。
阅读全文