我认为很明显我不明白。如何告诉C中的计算机决定哪个是合适的利率,然后计算并显示它。这是我能想到的最好的,明天我必须把它作为一项任务。我不知道这会很难。
#include <stdio.h>
int main (void)
{
float time;
float principal;
char response[15];
float rate1, rate2,rate3,rate4;
rate1=.04,rate2=.05,rate3=.06,rate4=.07;
float SimpleInterest1;
float SimpleInterest2;
float SimpleInterest3;
float SimpleInterest4;
SimpleInterest1=principal*time*rate1;
SimpleInterest2=principal*time*rate2;
SimpleInterest1=principal*time*rate3;
SimpleInterest2=principal*time*rate4;
printf("Please enter principal\n");
scanf ("%f",&principal);
printf ("Please enter time\n");
scanf ("%f",&time);
if (principal <= 5000)
{
printf ("%f",&SimpleInterest1);
}
printf ("Do you still want the loan?\n");
scanf ("%s",response);
return 0;
}
答案 0 :(得分:2)
正如已经说过的那样:不要忘记使用principal
值
scanf
。
然后,使用if-else if-else-statements来了解principal
所在的区间。
然后,在每个语句中,将interest
分配给正确的值。
然后在计算兴趣之前将time
分配给正确的值(如果必须,可以scanf
)。
另外,检查每年是否必须重新计算利息
新债。如果是这种情况,那么公式应该是
debt = principal * (1 + rate)^time
。
您可以#include <math.h>
使用计算浮点数或双精度的pow
函数。
然后只是printf("%f", debt);
。
Aparté酒店:
Michael Overton的书“使用IEEE算术进行数值计算”第82-86页很好地解释了如何使用稳定算法计算复合兴趣,因为使用pow
计算它的 naive 方法可以涉及精度的损失。
答案 1 :(得分:0)
首先,这两行可能是拼写错误:
SimpleInterest1=principal*time*rate3;
SimpleInterest2=principal*time*rate4;
他们应该成为这个:
SimpleInterest3=principal*time*rate3;
SimpleInterest4=principal*time*rate4;
接下来,如果您询问i / o(输入/输出),那么这是一个基本的运行:
您使用printf( char *format, ...)
输出信息。
您使用scanf( char *format, ...)
进行基本输入。
格式是以下之一(这是基础):
%s : Argument is expected to be of type char*
%i : Argument is expected to be signed int
%f : Argument is expected to be float (use also for double in printf)
%u : Argument is expected to be unsinged int.
使用scanf时,应检查返回值并清除输入缓冲区,示例如下:
void clear_buffer() {
// Note that ch is int not char, this is important
int ch;
while( (ch = getchar()) != EOF && ch != '\n');
}
int answers = 0;
float value = 0.0;
do {
// Scanf returns the recieved number of args that fit the format string
answers = scanf( "%f", &value );
clear_buffer();
if (answers == 0) {
continue;
}
} while (value > -0.1 && value < 0.1);
以上可能不起作用,因为我主要使用无符号整数,但它至少应该提供一个良好的基础。
你使用if ... else if .... else来确定要使用的公式。
最后,你应该在得到时间和主要值之后计算SimpleInterest; c解析器不能'看到未来'