第一周作业

1.题目:

该题为编程题,计算个人所得税。

题目内容:

请编写程序计算应缴的个人所得税,其中税率定义为:

当工资不超过5000时,税率为0;

当工资在区间(5000, 8000]时,超过5000部分,税率为3%;

当工资在区间(8000, 12000]时,超过8000部分,税率为10%;

当工资在区间(12000, 25000]时,超过12000部分,税率为20%;

当工资超过25000时,超过25000部分,税率为25%。

例如:假设某程序员月收入扣除保险金、公积金以后为 12900 元。起征点为 5000,则扣除起征点以后的余额 7900 元需要纳税。 其中前 3000 元按 3% 纳税 90 元, 3000 ~ 7000 之间的 4000 元按 10% 纳税 400 元, 7000 ~ 2000 元之间的 900 元按 20% 纳税 180 元, 个人所得税款合计为 3000 × 3% + 4000 × 10% + 900 × 20% = 90+ 400 + 180 = 670(元)

输入格式:

输入在一行中给出非负工资。

输出格式:

在一行输出个人所得税,精确到小数点后2位。

输入样例1:

5000

输出样例1:

0.00

输入样例2:

8000

输出样例2:

90.00

输入样例3:

12000

输出样例3:

490.00

输入样例4:

25000

输出样例4:

3090.00

输入样例5:

45000

输出样例5:

8090.00

#include<stdio.h>

int main ()

{

    int wage=0;

    int pay;

   // printf("输入工资");

    scanf("%d",&wage);

    if (wage<=5000)

        {

           pay =0;

        }

      else  if(wage>5000 && wage<=8000)

        {

            pay=(wage-5000)*0.03;

        }

        else if(wage>8000 && wage<=12000)

        {

            pay=90+(wage-8000)*0.1;

        }

       else if(12000<wage && wage<25000)

        {

            pay=490+(wage-12000)*0.2;

        }

        else if(wage>=25000)

        {

            pay=3090+(wage-25000)*0.25;

        }


    printf("%.2f",(float)pay);

    return 0;

}

2.题目:

本题要求实现一个根据学生成绩设置其等级,并完成统计不及格人数的函数。

题目内容:

结构体以及函数接口定义:

struct student{

    int num;

    char name[20];

    int score;

    char grade;

};

Void SetGrade( struct student stu[], int n,int &cnt );

说明:其中stu是学生信息的结构体数组,n是数组元素个数。学号num、姓名name和成绩score均已经存储,引用类型cnt用来返回不及格人数个数。SetGrade函数需要根据学生的成绩score设置其等级grade。等级设置:90-100为A,80-89为B,70-79为C,60 - 69为D,0-59为E。SetGrade需要通过cnt返回不及格的人数,如果所有学生都及格,返回0。

程序样例:

#include <iostream>

using namespace std;

#define MAXN 10

struct student{

    int num;

    char name[20];

    int score;

    char grade;

};

void SetGrade( struct student stu[], int n ,int &cnt);

int main()

{

    struct student stu[MAXN];

    int n, i, cnt;

    cin>>n;

    for(i = 0; i < n; i++){

       cin>>stu[i].num>>stu[i].name>>stu[i].score;

    }

   SetGrade(stu, n,cnt);

   cout<<"The count: "<<cnt<<endl;

   cout<<"The grades:"<<endl;

   for(i = 0; i < n; i++)

       cout<<stu[i].num<<" "<<stu[i].name<<" "<<stu[i].grade<<endl;

    return 0;

}

//请完成相应的SetGrade函数,并提交完整的程序

输入样例:

10

31001 annie 85

31002 bonny 75

31003 carol 70

31004 dan 84

31005 susan 90

31006 paul 69

31007 pam 60

31008 apple 50

31009 nancy 100

31010 bob 78

输出样例:

The count: 1

The grades:

31001 annie B

31002 bonny C

31003 carol C

31004 dan B

31005 susan A

31006 paul

31007 pam D

31008 apple E

31009 nancy A

31010 bob C

测试用例数据说明:

该试题共三个测试用例

测试用例1:测试数据同样例

测试用例2:没有不及格同学

测试用例3:所有同学都在60分以上

#include <iostream>



using namespace std;



 



#define MAXN 10



 



struct student{



    int num;



    char name[20];



    int score;



    char grade;



};



void SetGrade( struct student stu[], int n ,int &cnt);

int main()



{



    struct student stu[MAXN];



    int n, i, cnt;



    cin>>n;



    for(i = 0; i < n; i++){



       cin>>stu[i].num>>stu[i].name>>stu[i].score;



    }



   SetGrade(stu, n,cnt);



   cout<<"The count: "<<cnt<<endl;



   cout<<"The grades:"<<endl;



   for(i = 0; i < n; i++)



       cout<<stu[i].num<<" "<<stu[i].name<<" "<<stu[i].grade<<endl;



    return 0;



}



void SetGrade( struct student *p, int n ,int &cnt)



{



     int i ;



    cnt =0;



    struct student ;



    for(i=0;i<n;i++)



       {





            if (p[i].score>=90)



                {



                   p[i].grade ='A' ;



                } else if  ( p[i].score >=80)



                         {



                            p[i].grade ='B';



                }else if (p[i].score>= 70)



                         {



                           p[i].grade = 'C';



               } else if (p[i].score >=60)



                         {



                            p[i].grade ='D';



              }else



                       {



                           p[i].grade = 'E';



                           cnt++;



                      }



       }



}

3.题目:

引用作函数形参交换两个整数

设计一个void类型的函数Swap,该函数有两个引用类型的参数,函数功能为实现两个整数交换的操作。

裁判测试程序样例:

#include <iostream>

using namespace std;

void Swap(int &a, int &b);

int main()

{

    int a, b;

    cin >> a >> b;

    Swap(a, b);

    cout << a << " " << b << endl;

    return 0;

}

//请完成相应的Swap函数,并提交完整的程序

输入样例:

3 5

输出样例:

5 3

测试用例数据说明:

该试题共2个测试用例

测试用例1:测试数据同样例

测试用例2:a>b

#include <iostream>

using namespace std;

 

void Swap(int &a, int &b);

 

int main()

{

    int a, b;

    cin >> a >> b;

    Swap(a, b);

    cout << a << " " << b << endl;

    return 0;

}

void Swap(int &a, int &b)
{
    int temp;
    temp = a;
    a = b;
    b = temp;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值