Для цикла накопительный расчет задачи.C программирование - PullRequest
0 голосов
/ 07 февраля 2019

Здесь я создал калькулятор начисления процентов.Пользователь вводит основную сумму, процентный процент и продолжительность (в кварталах).Я использовал цикл for для первоначального расчета.Но я не знаю, как перевести итоговую сумму на основную сумму в следующем квартале.

Скажите, что пользователь вводит 1000, 5% и 2 квартала.Результат должен выглядеть следующим образом: Q1 Principal = 1000 $, Проценты = 0,05, Total = 1012.50, Q2 = 1012.50 = 0,05 = 1025.16

Кроме того, мое последнее занятие Do дает мне некоторые проблемы.Результат выдаёт пару лишних строк, прежде чем позволить пользователю начать все сначала.

Любой совет будет принята с благодарностью.

Спасибо

#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 голосов
/ 07 февраля 2019

Некоторые проблемы с отступами и логикой в ​​вашем коде.Вам нужно обновить принцип в цикле 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...