c语言编写程序,输入月薪数a,计算并输出税率、应缴税款和实得奖金数。工薪所得扣除标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编写程序,输入月薪数a,计算并输出税率、应缴税款和实得奖金数。工薪所得扣除标相关的知识,希望对你有一定的参考价值。

采用超额累进税率计税时,简化计算应纳税额的一个数据。速算扣除数实际上是在级距和税率不变条件下,全额累进税率的应纳税额比超额累进税率的应纳税额多纳的一个常数。因此,在超额累进税率条件下,用全额累进的计税方法,只要减掉这个常数,就等于用超额累进方法计算的应纳税额,故称速算扣除数。采用速算扣除数法计算超额累进税率的所得税时的计税公式是:

应纳税额=应纳税所得额×适用税率-速算扣除数

速算扣除数的计算公式是:

本级速算扣除额=上一级最高所得额×(本级税率-上一级税率)+上一级速算扣除数 超额累进税率全额累进税率

用上述公式求得的速算扣除数,可用直接计算法验证其准确性,以个人所得税工资、薪金所得适用的9级超额累进税率第2级验证如下:

① 用上述公式计算:

500×(10%-5%)+0=25

② 用直接计算法计算

全额累进税率的应纳税额=2000×10%=200

超额累进税率的应纳税额=(500×5%)+(1500×10%)=175

速算扣除数=200-175=25
附计算依据:
应纳个人所得税税额=(应纳税所得-扣除标准)*适用税率-速算扣除数
扣除标准1600元/月。
不超过500元的,税率5%,速算扣除数为0;
超过500元至2000元的部分,税率10%,速算扣除数为25
超过2000元至5000元的部分,税率15 %,速算扣除数为125
超过5000元至20000元的部分,税率20 %,速算扣除数为375
超过20000元至40000元的部分,税率25%,速算扣除数为1375
超过40000元至60000元的部分,税率30%,速算扣除数为3375
超过60000元至80000元的部分,税率35%,速算扣除数为6375
超过80000元至100000元的部分,税率40%,速算扣除数为10375
超过100000元的部分,税率45%,速算扣除数为15375
#include<stdio.h>
void main()

int a;
float sl,jszhi,gongzi;
printf("请输入工资: ");
scanf("%f,%f,%f,%f",&a,&sl,&jszhi,&gongzi);
if(a<=3500)
sl=0;jszhi=0;gongzi=a;

if(a>3500&&a<4500)

sl=0.03;jszhi=(a-1455)*0.03;gongzi=a-(a-1455)*0.03;

if(a>4500&&a<9000)

sl=0.1;jszhi=1455*0.03+(a-4155)*0.1;gongzi=a-(1455*0.03+(a-4155)*0.1)

if(a>9000&&a<18000)

sl=0.2;jszhi=1455*0.03+2700*0.1+(a-)*0.2;gongzi=a-(1455*0.03+2700*0.1+(a-7755)*0.2);

if(a>18000&&a<53000)

sl=0.25;jszhi=1455*0.03+2700*0.1+3600*0.2+(a-27255);gongzi=a-(1455*0.03+2700*0.1+3600*0.2+(a-27255));

if(a>35000&&a<90000)

sl=0.3;jszhi=1455*0.03+2700*0.1+3600*0.2+19500*0.25+(a-41255)*0.3;
gongzi=a-(1455*0.03+2700*0.1+3600*0.2+19500*0.25+(a-41255)*0.3);

if(a>90000&&a<170000)

sl=0.35;jszhhi=1455*0.03+2700*0.1+3600*0.2+19500*0.25+25000*0.3+(a-80000)*0.35;
gongzhi=(a-1455*0.03+2700*0.1+3600*0.2+19500*0.25+25000*0.3+(a-80000)*0.35);

else

sl=0.4;jszhi=1455*0.03+2700*0.1+3600*0.2+19500*0.25+25000*0.3+25000*0.35+(a-57505)*0.4;
gongzi=a-(1455*0.03+2700*0.1+3600*0.2+19500*0.25+25000*0.3+25000*0.35+(a-57505)*0.4);

printf("税率=%f",sl);
printf("应缴税款=%.4f",jszhi);
printf("实得奖金数=%.5",gongzi);
return 0;

错哪了,求高手相助!!!!!

参考技术A #include <stdio.h>
main()

int grade;
float salary,real_salary,ratal,tax;
printf("请输入个人工资薪金所得:\n ");
scanf("%f", &salary);
if(salary<0)

printf("输入的数据错误\n");
ratal=0;
tax=0;

else if(salary<=2000)

ratal=0;
tax=0;

else
ratal=salary-2000;
if(ratal<=500)
grade=1;
if(ratal>500 && ratal<=2000)
grade=2;
if(ratal>2000 && ratal<=5000)
grade=3;
if(ratal>5000 && ratal<=20000)
grade=4;
if(ratal>20000 && ratal<=40000)
grade=5;
if(ratal>40000 && ratal<=60000)
grade=6;
if(ratal>60000 && ratal<=80000)
grade=7;
if(ratal>80000 && ratal<=100000)
grade=8;
switch (grade)

case 1:tax=ratal*0.05-0;break;
case 2:tax=ratal*0.1-25;break;
case 3:tax=ratal*0.15-125;break;
case 4:tax=ratal*0.2-375;break;
case 5:tax=ratal*0.25-1375;break;
case 6:tax=ratal*0.3-3375;break;
case 7:tax=ratal*0.35-6375;break;
case 8:tax=ratal*0.4-10375;break;
default: tax=ratal*0.45-15375;

real_salary=salary-tax;
printf("应纳税额: %.2f元\n",tax);
printf("税后月收入: %.2f元\n",real_salary);
参考技术B if(a>4500&&a<9000)下面的代码行缺少分号;
if(a>9000&&a<18000)下面的代码段中(a-)减号后面缺少一个数值;
if(a>90000&&a<170000)下面的代码段中jszhhi这个变量名不存在,应该是jszhi,多写了个h;再下一行的gongzhi变量也不存在,应该是gongzi,多了个h。
除了这几个错误外,其他的都是类型自动转换的警告。因为太多地方,我只举一个例子。
if(a<=3500) 下面的代码段中,sl被赋予了int整型数据,但是根据前面的定义,sl是一个float浮点型变量,编译器会自动进行类型转换,并给出警告;后面的警告信息都类型这种错误。本回答被提问者采纳

C语言程序求助

1.按要求输入界面;

2.按要求输入班级人数并判断大/小班,判断规则:5人以上为大班,5人及以下为小班;

3.通过键盘输入班级学生的成绩;

4.判断学生成绩是否合格,并输出。判断规则:60分以下不及格输出“补考”,60-79分输出“合格”,80-100分输出“优秀”,负分数和100分以上显示“错误”。

5.求学生成绩的最高分;

6.并计算该班级学生的总分和平均成绩并显示,规则:负分数和100分以上显示“错误”的分数不计数总分及平均成绩计算中;

程序结束界面输出。

/*
1.按要求输入界面;

2.按要求输入班级人数并判断大/小班,判断规则:5人以上为大班,5人及以下为小班;

3.通过键盘输入班级学生的成绩;

4.判断学生成绩是否合格,并输出。判断规则:60分以下不及格输出“补考”,60-79分输出“合格”,80-100分输出“优秀”,负分数和100分以上显示“错误”。

5.求学生成绩的最高分;

6.并计算该班级学生的总分和平均成绩并显示,规则:负分数和100分以上显示“错误”的分数不计数总分及平均成绩计算中;

程序结束界面输出。

*/
#include "stdio.h"
#include "math.h"
#include "string.h"
void inquire_Num();
void init_Cls();
void inset_Grade();
struct score
float chinese;
float math;
float english;
;
struct student
int id;
    char name[10];
char sex[2];
struct score sc;
;

struct cls
struct student stu[10];
int Cls_number;
int stu_Num;//学生人数
;
struct cls ClsNum[5];
void main()
int choose=0;
printf("/***********************************/\\n");
printf("/*         1、班级属性             */\\n");
printf("/*         2、输入成绩             */\\n");
printf("/*         3、判断合格             */\\n");
printf("/*         4、求最高分             */\\n");
printf("/*         5、求平均分             */\\n");
printf("/***********************************/\\n");
printf("请输入对应的序号(1--5)\\n");
scanf("%d",&choose);
init_Cls();
switch(choose)
case 1:
inquire_Num();
break;
case 2:
inset_Grade();
break;

system("pause");


void init_Cls()
//一班
ClsNum[0].Cls_number=1;
ClsNum[0].stu_Num=5;

ClsNum[0].stu[0].id=1;
strcpy(ClsNum[0].stu[0].name,"卫庄");
strcpy(ClsNum[0].stu[0].sex,"男");
ClsNum[0].stu[0].sc.chinese=80.5;
ClsNum[0].stu[0].sc.math=88.5;
ClsNum[0].stu[0].sc.english=90.5;

ClsNum[0].stu[1].id=2;
strcpy(ClsNum[0].stu[1].name,"李斯");
strcpy(ClsNum[0].stu[1].sex,"男");
ClsNum[0].stu[1].sc.chinese=69.5;
ClsNum[0].stu[1].sc.math=70;
ClsNum[0].stu[1].sc.english=80;

ClsNum[0].stu[2].id=3;
strcpy(ClsNum[0].stu[2].name,"韩非");
strcpy(ClsNum[0].stu[2].sex,"男");
ClsNum[0].stu[2].sc.chinese=100;
ClsNum[0].stu[2].sc.math=100;
ClsNum[0].stu[2].sc.english=100;

ClsNum[0].stu[3].id=4;
strcpy(ClsNum[0].stu[3].name,"张良");
strcpy(ClsNum[0].stu[3].sex,"男");
ClsNum[0].stu[3].sc.chinese=99.5;
ClsNum[0].stu[3].sc.math=100;
ClsNum[0].stu[3].sc.english=100;

ClsNum[0].stu[3].id=5;
strcpy(ClsNum[0].stu[4].name,"白凤");
strcpy(ClsNum[0].stu[4].sex,"男");
ClsNum[0].stu[4].sc.chinese=65;
ClsNum[0].stu[4].sc.math=30;
ClsNum[0].stu[4].sc.english=50;

//二班
ClsNum[1].Cls_number=2;
ClsNum[1].stu_Num=2;

ClsNum[1].stu[0].id=1;
strcpy(ClsNum[1].stu[0].name,"姬无夜");
strcpy(ClsNum[1].stu[0].sex,"男");
ClsNum[1].stu[0].sc.chinese=30;
ClsNum[1].stu[0].sc.math=20;
ClsNum[1].stu[0].sc.english=30;

ClsNum[1].stu[1].id=2;
strcpy(ClsNum[0].stu[1].name,"赵高");
strcpy(ClsNum[0].stu[1].sex,"男");
ClsNum[1].stu[1].sc.chinese=50;
ClsNum[1].stu[1].sc.math=90;
ClsNum[1].stu[1].sc.english=60;


void inquire_Num()
int Cls_ID;
printf("请输入需要查询的班级:\\n");
scanf("%d",&Cls_ID);
if(Cls_ID==0||ClsNum[Cls_ID-1].Cls_number==0)
printf("该班级不存在");
else
if(ClsNum[Cls_ID-1].stu_Num>=5)
printf("%d班级为大班\\n",Cls_ID);
else
printf("%d班级为小班\\n",Cls_ID);




void inset_Grade()
int clsnumber=0;
int stuId=0;
float chinese,math,english;
printf("请输入需要输入几班的成绩\\n");
scanf("%d",&clsnumber);
printf("请输入学生学号\\n");
scanf("%d",&stuId);
if(ClsNum[clsnumber-1].Cls_number==0)
printf("查无此班");
return;
else
if(ClsNum[clsnumber-1].stu[stuId-1].id==0)
printf("查无此人");
return;
else
printf("请分别输入该学生的语文 数学 英语(用空格隔开)");
scanf("%d %d %d",&chinese,&math,&english);
ClsNum[clsnumber-1].stu[stuId-1].sc.chinese=chinese;
ClsNum[clsnumber-1].stu[stuId-1].sc.math=math;
ClsNum[clsnumber-1].stu[stuId-1].sc.math=english;

printf("输入成功\\n");

上边是实现了两个功能,其他功能你对照着完善下,没有时间做,毕竟还要上班。下次非常麻烦的代码,你的奖励20可没人做

参考技术A C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
参考技术B 1.按要求输入界面;
2.按要求输入班级人数并判断大/小班,判断规则:5人以上为大班,5人及以下为小班;
3.通过键盘输入班级学生的成绩;
4.判断学生成绩是否合格,并输出。判断规则:60分以下不及格输出“补考”,60-79分输出“合格”,80-100分输出“优秀”,负分数和100分以上显示“错误”。
5.求学生成绩的最高分;
6.并计算该班级学生的总分和平均成绩并显示,规则:负分数和100分以上显示“错误”的分数不计数总分及平均成绩计算中;
程序结束界面输出。

和楼主一样的题,谁会做,麻烦帮帮我

以上是关于c语言编写程序,输入月薪数a,计算并输出税率、应缴税款和实得奖金数。工薪所得扣除标的主要内容,如果未能解决你的问题,请参考以下文章

c语言编写程序 输入两个整数,计算两数之和

用C语言编写程序:键盘输入a和b两个整数,要求用函数求两个数之和,在主函数main()中输出

c语言简单求和,编写程序:输入两个数,求两个数的和

[PTA]实验3-6 计算个人所得税

C语言。编写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并打印。

编写程序,计算并输出1到100中的所有偶数