C 为什么这个循环在第二次运行时不迭代?
我是C新手,遇到了以下问题。有人能解释一下计算利息和总额的循环有什么问题吗?代码如下:C 为什么这个循环在第二次运行时不迭代?,c,loops,C,Loops,我是C新手,遇到了以下问题。有人能解释一下计算利息和总额的循环有什么问题吗?代码如下: #include <stdio.h> /*simple interest rate calculator */ int main() { int year, y; float sum, interest, i; // i = interest after iteration y = 0; i = 0; printf("Provide a sum yo
#include <stdio.h>
/*simple interest rate calculator */
int main()
{
int year, y;
float sum, interest, i; // i = interest after iteration
y = 0;
i = 0;
printf("Provide a sum you want to invest(in pence):\n");
scanf("%f", &sum);
printf("Provide interest rate:\n");
scanf("%f", &interest);
printf("For how long would you like to save(in years):\n");
scanf("%d", &year);
/*for(y = 1; y <= year; y++)
i = sum * interest/100;
sum += i; */
do
{
i = sum * interest/100;
sum += i;
}
while (y == 1 && y<= year);
printf("Original sum %0.0f at %0.1f rate for %d years:\n\n", sum, interest, year);
printf(" Year Interest Sum\n");
printf("--------+--------+--------\n");
for(y = 1; y<= year; y++)
printf("%5d %11.2f %5.2f\n", y, i, sum);
return 0;
}
#包括
/*简易利率计算器*/
int main()
{
整年,y;
浮点和,利息,i;//i=迭代后的利息
y=0;
i=0;
printf(“提供您想要投资的金额(单位:便士):\n”);
scanf(“%f”,和);
printf(“提供利率:\n”);
scanf(“%f”和利息);
printf(“您希望保存多长时间(以年为单位):\n”);
scanf(“%d”和“年”);
/*对于(y=1;y
编辑
我真的不明白你为什么用这个循环-
for(y = 1; y<= year; y++)
printf("%5d %11.2f %5.2f\n", y, i, sum);
for(y=1;y您的do while()循环只运行一次,因为其中一个条件是“y==1”,在您增加y后,该条件将计算为false,因此循环停止。
你也不需要在任何地方增加y,因为它被初始化为0,它也不满足条件。我想你需要这样的东西
int y = 1; // initialize with 1
printf(" Year Interest Sum\n");
printf("--------+--------+--------\n");
do
{
i = (sum * interest)/100; // it will calculate sum+interest for 1 year.
sum += i;
y++;
printf("%5d %11.2f %5.2f\n", y, i, sum);
}
while (y <= year); // you can compare y > 0 also in case you kept y = 0
printf("Original sum %0.0f at %0.1f rate for %d years:\n\n", sum, interest, year);
int y=1;//用1初始化
printf(“年利息总额”);
printf(“----------+----------+-----------\n”);
做
{
i=(总和*利息)/100;//它将计算1年的总和+利息。
总和+=i;
y++;
printf(“%5d%11.2f%5.2f\n”,y,i,和);
}
而(y 0)也是在保持y=0的情况下
printf(“原始金额%0.0f,利率为%0.1f,为期%d年:\n\n”,金额、利息、年份);
y==1&&yan循环体中的y
值没有变化。我真的没有了解你的程序流程。非常感谢,终于了解了。是的,希曼舒,这几乎就是我在阅读上述帖子后所做的。无论如何,非常感谢。
for(y = 1; y<= year; y++)
printf("%5d %11.2f %5.2f\n", y, i, sum);
int y = 1; // initialize with 1
printf(" Year Interest Sum\n");
printf("--------+--------+--------\n");
do
{
i = (sum * interest)/100; // it will calculate sum+interest for 1 year.
sum += i;
y++;
printf("%5d %11.2f %5.2f\n", y, i, sum);
}
while (y <= year); // you can compare y > 0 also in case you kept y = 0
printf("Original sum %0.0f at %0.1f rate for %d years:\n\n", sum, interest, year);