Untitled

 avatar
unknown
plain_text
3 years ago
1.9 kB
5
Indexable
#include <stdio.h>

// REFERENCE FOR ALIGNING NUMBERS USING printf()
// https://www.eecis.udel.edu/~sprenkle/cisc105/making_columns.html

int main() {
    double total_salary = 0, total_raise = 0, total_newsalary = 0;
    double salary, raise, new_salary = 0;
    float rate;
    // EXPLAINATION:
    // printf("%25.2lf%15.2lf%15.2lf%15.2lf\n", salary, rate, raise, new_salary);
    //      Let's break down the above line:
    //      %25.2lf   %15.2lf   %15.2lf   %15.2lf
    //
    // printf("                   Salary           Rate          Raise     New Salary\n");
    //      Let's break down the above line:
    // "                   Salary" => 25 characters  => so we have %25.2lf
    // "           Rate" => 15 characters  => so we have %15.2lf
    // "          Raise" => 15 characters  => so we have %15.2lf
    // "     New Salary" => 15 characters  => so we have %15.2lf

    printf("                   Salary           Rate          Raise     New Salary\n");
    printf("----------------------------------------------------------------------\n");
    while (1){
        printf("Salary: ");
        scanf("%lf", &salary);
        if(salary < 0)
        break;
        if(salary < 30000)
         {
             rate = 7.0;
        } else if(salary <= 40000)
        {
            rate = 5.5;
        } else
        {
            rate = 4.0;
        }

        raise = (rate / 100) * salary;
        new_salary = salary + raise;

        total_salary += salary;
        total_newsalary += new_salary;
        total_raise += raise;

        printf("%25.2lf %15.2lf %15.2lf %15.2lf\n", salary, rate, raise, new_salary);
    }
    printf("----------------------------------------------------------------------\n");
    printf("Total%20.2lf%30.2lf%15.2lf\n", total_salary, total_raise, total_newsalary);

    return 0;
}

Editor is loading...