1215787625 发表于 2023-11-3 10:19:41

为什么无法得到正确的结果

#include<stdio.h>
int main(){
    int n,k,b,a;
    double c;
    b = 1;
    a = 0;
    scanf("%d %d",&n,&k);
    c = 200*(1+0.01*k);
        do{
           c = c*(1.0+0.01*k);
       a += n;
       b++;
       if(a>=c)
       break;
        }while(b<=20);
        if(b<=20)
        printf("%d",b);
        else
        printf("Impossible");
    return 0;
}

isdkz 发表于 2023-11-3 10:20:12

这段代码的作用是计算一个投资方案需要多少年才能达到预期收益。根据输入的参数n和k,计算出每年的收益c,并逐年累加收益a,直到a大于等于c为止。

然而,根据提供的代码,无法确定为什么无法得到正确的结果。可能的原因包括输入数据的问题、计算逻辑的问题或者输出结果的问题。为了解决这个问题,我们可以逐步检查代码并进行调试。

首先,我们可以检查输入数据的问题。请确保正确输入两个整数n和k。在运行程序时,确保按照正确的格式输入数据,例如"10 5"表示n=10,k=5。

其次,我们可以检查计算逻辑的问题。在给定的代码中,使用了一个do-while循环来计算收益和累加年数,直到满足退出条件。请确保循环逻辑正确,并且计算公式正确。

最后,我们可以检查输出结果的问题。根据代码逻辑,如果计算成功,应该输出年数b;如果无法在20年内达到预期收益,应该输出"Impossible"。请确保输出结果的格式和逻辑正确。

通过逐步检查和调试,我们应该能够找到问题所在并得到正确的结果。

poly 发表于 2023-11-6 13:09:01

你想干什么
页: [1]
查看完整版本: 为什么无法得到正确的结果