Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Bài toán tính tiền thuế theo kiểu bậc thang trên C, xem giúp code sai ở đâu???

  1. #1
    Ngày gia nhập
    05 2009
    Nơi ở
    Hà Nội
    Bài viết
    16

    Post Bài toán tính tiền thuế theo kiểu bậc thang trên C, xem giúp code sai ở đâu???

    mọi người xem giúp em bài toán tính tiền lương theo kiểu bậc thang này với ạ:
    Đề bài:
    PHP Code:
    From 2009people must pay income tax depended on the total amount he/she earnsIncome tax is the kind of progress taxwhich applies higher tax rates to individuals posting higher earnings.
    Firstlytaxable income is identifiedTaxable income is calculated by deducting total deduction (personal allowance and any deductible reliefs you are entitled tofrom your total earnings.
    Herefive kinds of deductions:
    1.    4.000.000 VND per month for yourself 
    2.    1
    of total amount for health insurance 
    3.    5
    of total amount for pension contribution 
    4.    1.600.000 VND 
    for each dependant under 18 age 
    5.    any gift of charity
    Then
    taxable income is multiplied by the tax rate of according brackets you belong in
    Hereseven tax brackets
    1.    taxable income of 5 millions VND or less attracts tax at 
        5

    2.    taxable income of more than 5 millions and not more than 10 millions attracts tax at 10%.
    3.    taxable income of more than 10 millions and not more than 18 millions attracts tax at 15%.  
    4.     taxable income of more than 18 millions and not more than 32 millions attracts tax at 20%.
    5.    taxable income of more than 32 millions and not more than 52 millions attracts tax at 25%.  
    6.    taxable income of more than 52 millions and not more than 80 millions attracts tax at 30%.  
    7.    taxable income of more than 80 attracts tax at 
        35
    %. 
    khi em chỉ thay đổi chỗ nhập Pension contributions với Health insurance thì lập tức bài bị sai ngay, đề của thầy thì phải nhập Pension contributions trước giúp em với. cảm ơn mọi người.

    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #define rate_pension 5                         //  rate_pension ...%
    #define health 1                            //  health ...% 
    int main()
        {
            
    int choicechild;
            
    double incomegifttotal,taxIncometaxremainder,temp1temp2,temp3;
            
    char contrinsur;
            
    system("cls");
            while (
    9)
                {
                    
    system("cls");
                    
    printf(" Choose one of the following options: \n");
                    
    printf(" 1. Tax calculator \n");
                    
    printf(" 0. Exit \n");
                    
    printf(" Your selection <0 -> 1>: ");
                        
    scanf("%d",&choice);
                    if ((
    choice!=0) && (choice!=1))
                       {
                          
    printf("*** Typing error. Please try again ***");
                          
    getch();
                       }
                    else if (
    choice==0)
                        break;
                    else if (
    choice==1)
                        {
                            
    system("cls");
                            
    printf("           Income tax Calculator \n"); 
                            
    printf("==================================================== \n");
                            
    printf("Enter personal information: \n");
                            
    printf("Income for the current month <in thousand VND>: "); 
                                
    scanf("%lf", &income);
                            
                            
    printf("\n Health insurance (%d%%) y/n? ",health,rate_pension);
                                
                                
    scanf("%s",&insur);
                            
    printf("\n Pension contributions (%d%%) y/n? ",rate_pension,health);
                                
    scanf("%s",&contr);
                            
    printf("\n Number of Dependants < 18 years old: ");
                                
    scanf("%d",&child);
                            
    printf("\n Gift of charity: ");
                                
    scanf("%lf",&gift);
                            if ((
    contr=='y') || (contr=='Y'))
                                
    temp1=income*rate_pension/100;
                            else  
    temp1=0;
                            if ((
    insur=='y') || (insur=='Y'))
                                
    temp2=health*income/100;
                            else 
    temp2=0;
                            
    temp3=child*1600;
                            
    total=4000 temp1 temp2 temp3;
                            
    remainderincome total;
                            
    tax=0;
                            
                            if (
    remainder<=5000tax=tax + (remainder)*0.05
                            if (
    remainder>5000tax=tax 0.05*5000;                    
                            if ((
    remainder>5000) && (remainder<=10000))
                                 
    tax=tax 0.10*(remainder-5000);            
                            if ((
    remainder>5000) && (remainder>10000))
                                
    tax=tax 0.10*(10000-5000);                                 
                            
                            if ((
    remainder>10000) && (remainder<=18000))
                                 
    tax=tax 0.15*(remainder 10000);       
                             if ((
    remainder>10000) && (remainder>18000)) 
                               
    tax=tax 0.15*(18000-10000);                              
                           if ((
    remainder>18000) && (remainder<=32000))
                                 
    tax=tax 0.2*(remainder-18000);            
                             if ((
    remainder>18000) && (remainder>32000))
                               
    tax=tax 0.20*(32000-18000);                                
                         if ((
    remainder>32000) && (remainder<=52000))
                                 
    tax=tax + (remainder-32000)*0.25;    
                               if ((
    remainder>32000) && (remainder>52000)) 
                               
    tax=tax 0.25*(52000-32000);                                
                         if ((
    remainder>52000) && (remainder<=80000))
                                 
    tax=tax + (remainder-52)*0.3;            
                            if (
    remainder>80000tax=tax 0.35*(remainder-80000);    
                               if ((
    remainder>52000) && (remainder>80000)) 
                               
    tax=tax 0.3*(80000-52000);                                 
                          
                            
                            
                              
                            
    printf("Gross Income                      %5.1lf \n"income);
                            
    printf("Deduction: \n");
                            
    printf("   Personal allowance              4000.0 \n");
                            
    printf("   Pension contributions           %.1lf \n",temp1);
                            
    printf("   Health insurance                %.1lf \n",temp2);
                            
    printf("   Dependants                      %.1f \n",temp3);
                            
    printf("   Charity               %.1lf \n",gift);
                            
    printf("   -----------------------------------------\n");
                            
    printf("   Total                           %.1lf \n",total);
                            
    printf("Taxable Income                     %.1lf \n",remainder);
                            
    printf("Income tax                         %.1lf \n",tax);
                            
    printf("Net Income                         %.1lf \n",income-tax); 
                            
    printf("\n Press any key to continue...");
                            
    getch();
                        }
                }
            return(
    0);
        } 
    Đã được chỉnh sửa lần cuối bởi ducvuong6690 : 18-05-2009 lúc 10:55 AM. Lý do: em cho thêm đề bài

  2. #2
    Ngày gia nhập
    05 2009
    Nơi ở
    Hà Nội
    Bài viết
    16

    em đã tìm ra được chỗ sai và muốn chia sẻ với mọi người:

    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #define rate_pension 5                         //  rate_pension ...%
    #define health 1                            //  health ...% 
    int main()
        {
            int choice, child;
            double income, gift, total,taxIncome, tax, remainder,temp1, temp2,temp3;
            char contr, insur;
            system("cls");
            while (9)
                {
                    system("cls");
                    printf(" Choose one of the following options: \n");
                    printf(" 1. Tax calculator \n");
                    printf(" 0. Exit \n");
                    printf(" Your selection <0 -> 1>: ");
                        scanf("%d",&choice);
                    if ((choice!=0) && (choice!=1))
                       {
                          printf("*** Typing error. Please try again ***");
                          getch();
                       }
                    else if (choice==0)
                        break;
                    else if (choice==1)
                        {
                            system("cls");
                            printf("           Income tax Calculator \n"); 
                            printf("==================================================== \n");
                            printf("Enter personal information: \n");
                            printf("Income for the current month <in thousand VND>: ");              
                                scanf("%lf", &income);
                            
                            printf("\n Health insurance (%d%%) y/n? ",health,rate_pension);   // <<-------- đây này mọi người
                                fflush(stdin);
                                scanf("%c",&insur);
                            printf("\n Pension contributions (%d%%) y/n? ",rate_pension,health);   // <<-----
                                fflush(stdin);
                                scanf("%c",&contr);
                            printf("\n Number of Dependants < 18 years old: ");
                                scanf("%d",&child);
                            printf("\n Gift of charity: ");
                                scanf("%lf",&gift);
                            if ((contr=='y') || (contr=='Y'))
                                temp1=income*rate_pension/100;
                            else  temp1=0;
                            if ((insur=='y') || (insur=='Y'))
                                temp2=health*income/100;
                            else temp2=0;
                            temp3=child*1600;
                            total=4000 + temp1 + temp2 + temp3+gift;
                            remainder= income - total;
                            tax=0;
                            
                            if (remainder<=5000) tax=tax + (remainder)*0.05; 
                            if (remainder>5000) tax=tax + 0.05*5000;                    
                            if ((remainder>5000) && (remainder<=10000))
                                 tax=tax + 0.10*(remainder-5000);            
                            if ((remainder>5000) && (remainder>10000))
                                tax=tax + 0.10*(10000-5000);                                 
                            
                            if ((remainder>10000) && (remainder<=18000))
                                 tax=tax + 0.15*(remainder - 10000);       
                             if ((remainder>10000) && (remainder>18000)) 
                               tax=tax + 0.15*(18000-10000);                              
                           if ((remainder>18000) && (remainder<=32000))
                                 tax=tax + 0.2*(remainder-18000);            
                             if ((remainder>18000) && (remainder>32000))
                               tax=tax + 0.20*(32000-18000);                                
                         if ((remainder>32000) && (remainder<=52000))
                                 tax=tax + (remainder-32000)*0.25;    
                               if ((remainder>32000) && (remainder>52000)) 
                               tax=tax + 0.25*(52000-32000);                                
                         if ((remainder>52000) && (remainder<=80000))
                                 tax=tax + (remainder-52000)*0.3;            
                            if (remainder>80000) tax=tax + 0.35*(remainder-80000);    
                               if ((remainder>52000) && (remainder>80000)) 
                               tax=tax + 0.3*(80000-52000);                                 
                          
                            
                            
                              
                            printf("Gross Income                      %5.1lf \n", income);
                            printf("Deduction: \n");
                            printf("   Personal allowance              4000.0 \n");
                            printf("   Pension contributions           %.1lf \n",temp1);
                            printf("   Health insurance                %.1lf \n",temp2);
                            printf("   Dependants                      %.1f \n",temp3);
                            printf("   Charity               %.1lf \n",gift);
                            printf("   -----------------------------------------\n");
                            printf("   Total                           %.1lf \n",total);
                            printf("Taxable Income                     %.1lf \n",remainder);
                            printf("Income tax                         %.1lf \n",tax);
                            printf("Net Income                         %.1lf \n",income-tax); 
                            printf("\n Press any key to continue...");
                            getch();
                        }
                }
            return(0);
        }
    Đã được chỉnh sửa lần cuối bởi ducvuong6690 : 22-05-2009 lúc 10:36 PM.

  3. #3
    Ngày gia nhập
    09 2009
    Bài viết
    1

    Mặc định Mình cũng có bài tập tương tự như trên

    Mình cũng đang làm bài tập như trên. Nhưng vì mình làm khác bạn nên ko biết sai chỗ nào. Ai biết làm ơn check dùm mình nhé. Thank!

    [FIXED]#include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <math.h>

    int main()
    {
    system("cls");
    while(1)
    {
    double tax,tax1,tax2,tax3,tax4,tax5,tax6,tax7;
    double income,total,n,gift,heal,cha,depend;
    char charity,health;

    printf("Enter personal infomation: \n");
    printf("========================== \n");

    printf("Income for current month <in thousand VND> : ");
    scanf("%lf",&income);

    printf("Pension contribution (5%%) y/n : ");
    fflush(stdin);
    scanf("%c",&charity);

    printf("Health isurean (1%%) y/n : ");
    fflush(stdin);
    scanf("%c",&health);

    printf("Numbers of dependant < 18 years old : ");
    scanf("%lf",&depend);

    printf("Gift of chaity : ");
    scanf("%lf",&gift);

    if((charity == 'y') || (charity == 'Y')) cha = n*0.05;
    else cha = 0;
    if((health == 'y') || (health == 'Y')) heal = n*0.01;
    else heal = 0;

    total = 4000 + heal + cha + (depend*1600);
    n = income - total;
    tax1=tax2=tax3=tax4=tax5=tax6=tax7=0;
    tax1 = n*0.05;
    tax2 = n*0.1 - (1000*0.05);
    tax3 = n*0.15 - (1000*0.05) - (5000*0.1);
    tax4 = n*0.2 - (1000*0.05) - (5000*0.1) - (8000*0.15);
    tax5 = n*0.25 - (1000*0.05) - (5000*0.1) - (8000*0.15) - (14*0.2);
    tax6 = n*0.3 - (1000*0.05) - (5000*0.1) - (8000*0.15) - (14*0.2) - (20*0.25);
    tax7 = n*0.35 - (1000*0.05) - (5000*0.1) - (8000*0.15) - (14*0.2) - (20*0.25) - (28*0.3);


    if(income<= 5000) tax=tax1;
    else if(income > 5000 && income <= 10000) tax=tax2;
    else if(income > 10000 && income <= 18000) tax=tax3;
    else if(income > 18000 && income <= 32000) tax=tax4;
    else if(income > 32000 && income <= 52000) tax=tax5;
    else if(income > 52000 && income <= 80000) tax=tax6;
    else if(income > 80000) tax=tax7;

    printf(" Gross income : %10.2lf \n",income);
    printf(" Deduction : \n");
    printf(" Personal allowance : 4000 \n");

    if(charity == 'y') printf(" Pesion contribution : %10.2lf \n",cha);
    else printf(" Pesion contribution : 0 \n");

    if(health == 'y') printf(" Health insurean : %10.2lf \n",heal);
    else printf(" Health insurean : 0 \n");
    printf(" Dependant : %lf \n",depend*1600);
    printf(" Gift of charity : %lf \n",gift);
    printf(" ---------------------------------------\n");
    printf(" Total : %10.2lf \n",total);
    printf(" Taxible income : %10.2lf \n",n);
    printf(" Tax : %10.2lf \n",tax);

    }
    system("pause");
    return(0);
    }[/FIXED]
    Đã được chỉnh sửa lần cuối bởi Fantasista : 13-09-2009 lúc 11:17 AM.

Các đề tài tương tự

  1. Giải thích về code của thuật toán in ra chuỗi đảo ngược theo từng từ.
    Gửi bởi skyblue12 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 27-07-2013, 01:00 PM
  2. Graphic Khắc phục Code tô màu theo thuật giải 4 điểm lân cận bị tràn stack?
    Gửi bởi anhlavip_10a4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 24-05-2011, 01:35 PM
  3. Bài tập C++ Cần code thuật toán radix sỏt sắp xếp theo mảng dễ hiểu.
    Gửi bởi hieu113113113 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 08-10-2010, 05:48 AM
  4. Tìm kiếm trên file! Tìm kiếm xâu mẫu dùng giải thuật Naive | Giúp mình code sai ở đâu
    Gửi bởi totoise trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 19-04-2009, 08:22 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn