对于循环累积计算问题。 C程序设计

时间:2019-02-07 17:17:11

标签: c

在这里,我创建了复利计算器。用户输入本金,利息%和期限(以季度为单位)。我已使用for循环进行初始计算。但是,我不知道如何将总金额转移到下一季度的本金。

说用户输入1000、5%和2个季度。输出应类似于Q1本金= $ 1000,利息= 0.05,总计= $ 1012.50,Q2 = $ 1012.50 = 0.05 = $ 1025.16

我最近一次做的事也是给我一些问题。在让用户重新开始之前,输出会吐出一些额外的行。

任何建议将不胜感激。

谢谢

#include <stdio.h>

int main (void)
{
    int a = 0, b=0;
    double interest, prin, total=0;
    char check = ' ';

    do{

        do{

            do{
                printf (" Please enter principal:\n");
                scanf ("%lf", &prin);
            }while(prin <=0);

            do{
                printf ("Please enter desired interest greater 
                        than 0 less than 20 :\n");
                scanf ("%lf", &interest);
            }while(interest <=0 || interest >20);
            interest = interest/100;

            do{
                printf ("For how many quarters would you like 
                        to deposit: (more than 0, less than 40) \n");
                scanf ("%d", &b);
            }while(b <=0 || b >40);

            printf ("Is this information correct? Press X 
                    to continue" );
            scanf ("\n%c", &check);
        }while(check != 'x' && check != 'X');

        total = prin * (1+(interest *.25));

        printf ("Quarter     Principal      Interest      
                Total\n");

        for(a=1;   ;++a){
            printf ("%2d          $%.2f        %.2lf        
                    $%.2lf\n", a, prin, interest, total);
            if(a == b)
                break;
        }

        printf ("Do you want to start over (Y/N)?");
        scanf ("%c\n", &check);
    }while(check != 'y' || check != 'Y');





    return 0;
}

1 个答案:

答案 0 :(得分:2)

代码中的缩进和逻辑有些问题。您需要在for循环语句中更新原则。然后打印出来。这是我的解决方法

#include <stdio.h>

int main(void)
{
    int a = 0, b = 0;
    double interest, prin, total = 0;
    char check = ' ';

    do {

        do {

            do {
                printf(" Please enter principal:\n");
                scanf("%lf", &prin);
            } while (prin <= 0);

            do {
                printf("Please enter desired interest greater  than 0 less than 20 :\n");
                scanf("%lf", &interest);
            } while (interest <= 0 || interest > 20);
            interest = interest / 100;

            do {
                printf("For how many quarters would you like to deposit : (more than 0, less than 40) \n");
                scanf("%d", &b);
            } while (b <= 0 || b > 40);

            printf("Is this information correct? Press X to continue" );
            scanf("\n%c", &check);
        } while (check != 'x' && check != 'X');



        printf("Quarter     Principal      Interest      Total\n");

        for (a = 1; a<=b; ++a) {
            total = prin * (1 + (interest *.25));
            printf("%2d          $%.2f        %.2lf        $%.2lf\n", a, prin, interest, total);
            prin = total;
        }

        printf("Do you want to start over (Y/N)?");
        scanf("%c\n", &check);
    } while (check != 'y' || check != 'Y');
return 0;
}