1. 类别
税金
单身17850美元以内按15%计,超出部分按28%计
户主23900美元以内按15%计,超出部分按28%计
已婚29750美元以内按15%计,超出部分按28%计
离异14875美元以内按15%计,超出部分按28%计
1998年的美国联邦税收计划是近代最简单的税收方案。它分为4个类别, 每个类别有两个等级。
下面是该税收计划的摘要。例如一位工资为20000美元的单身纳税人,应缴纳税费0.15*17850+0.28*(20000-17850)美元。
编写一个程序,让用户指定缴纳税金的种类和应纳税的收入,然后计算税金和净收入。
#include <stdio.h>
int main()
{
int type; // single,householder,married,divorce
printf("------请选择种类(序号)------\n");
printf("1.单身 2.户主 3.已婚 4.离异\n");
scanf("%d",&type);
float salary,taxes,netincome;
switch(type)
{
case 1:
{
printf("请输入薪水(美元):\n");
scanf("%f",&salary);
if(salary < 0)
{
printf("无效数字,程序退出!");
return 1;
}
else if(salary < 17850)
{
taxes = salary * 0.15;
netincome = salary - taxes;
printf("您的税金为%f\n",taxes);
printf("您的净收入为%f\n",netincome);
break;
}
else if(salary >= 17850)
{
taxes = 17850 * 0.15 + (salary -17850) * 0.28;
netincome = salary - taxes;
printf("您的税金为%f\n",taxes);
printf("您的净收入为%f\n",netincome);
break;
}
}
case 2:
{
printf("请输入薪水(美元):\n");
scanf("%f",&salary);
if(salary < 0)
{
printf("无效数字,程序退出!");
return 1;
}
else if(salary < 23900)
{
taxes = salary * 0.15;
netincome = salary - taxes;
printf("您的税金为%f\n",taxes);
printf("您的净收入为%f\n",netincome);
break;
}
else if(salary >= 23900)
{
taxes = 23900 * 0.15 + (salary -23900) * 0.28;
netincome = salary - taxes;
printf("您的税金为%f\n",taxes);
printf("您的净收入为%f\n",netincome);
break;
}
}
case 3:
{
printf("请输入薪水(美元):\n");
scanf("%f",&salary);
if(salary < 0)
{
printf("无效数字,程序退出!");
return 1;
}
else if(salary < 29750)
{
taxes = salary * 0.15;
netincome = salary - taxes;
printf("您的税金为%f\n",taxes);
printf("您的净收入为%f\n",netincome);
break;
}
else if(salary >= 29750)
{
taxes = 29750 * 0.15 + (salary - 29750) * 0.28;
netincome = salary - taxes;
printf("您的税金为%f\n",taxes);
printf("您的净收入为%f\n",netincome);
break;
}
}
case 4:
{
printf("请输入薪水(美元):\n");
scanf("%f",&salary);
if(salary < 0)
{
printf("无效数字,程序退出!");
return 1;
}
else if(salary < 14875)
{
taxes = salary * 0.15;
netincome = salary - taxes;
printf("您的税金为%f\n",taxes);
printf("您的净收入为%f\n",netincome);
break;
}
else if(salary >= 14875)
{
taxes = 14875 * 0.15 + (salary -14875) * 0.28;
netincome = salary - taxes;
printf("您的税金为%f\n",taxes);
printf("您的净收入为%f\n",netincome);
break;
}
}
default:
{
printf("种类序号有误,程序退出!");
return 1;
}
}
return 0;
}
2. 根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:起步里程为3公里,起步费9元;超起步里程后10公里内,每公里2元;超起步里程后10公里以上的部分加收50%的回空补贴费,即每公里3元;营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
#include <stdio.h>
int main()
{
int time;
printf("请输入乘车停滞时长(分钟):");
scanf("%d",&time);
float mileage,cost;
if(time < 0)
{
printf("停滞时长输入错误,程序退出!\n");
return 0;
}
else
{
printf("请输入乘车里程数(km):");
scanf("%f",&mileage);
if(mileage <= 3 && mileage >= 0)
{
cost = 9 + (time / 5) * 2;
printf("费用为%f元\n",cost);
}
else if(mileage <= 13 && mileage >= 3)
{
cost = 9 + (mileage - 3) * 2 + (time / 5) * 2;
printf("费用为%f元\n",cost);
}
else if(mileage >= 13)
{
cost = 9 + 2 * 10 + (mileage -13) * 3 + (time / 5) * 2;
printf("费用为%f元\n",cost);
}
else
{
printf("乘车里程输入错误,程序退出!\n");
return 1;
}
}
return 0;
}
3. 完成石头、剪刀和布的游戏<1> 电脑随机出拳,使用rand函数,srand()函数进行随机播种<2>用户出拳通过键盘输入(0:石头,1:剪刀 2:布)<3>每局结束打印一次最终判定输赢结果
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
//石头0,剪刀1,布2的游戏,一局一总结
//用户通过键盘输入
//电脑可以随机出
//随机函数rand();
int draw = 0,pcwin = 0,userwin = 0;
int user_select = 0;
while(pcwin >= 0 && userwin >= 0)
{
srand(time(NULL));
int pc = rand() % 3;
printf("请输入手势(0:石头,1:剪刀,2:布,输入0,1,2以外数字退出游戏):" );
scanf("%d",&user_select);
switch(pc)
{
case 0:
{
if(user_select == 0)
{
printf("平局\n");
draw++;
break;
}
else if(user_select == 1)
{
printf("你输了\n");
pcwin++;
break;
}
else if(user_select == 2)
{
printf("你赢了\n");
userwin++;
break;
}
}
case 1:
{
if(user_select == 0)
{
printf("你赢了\n");
userwin++;
break;
}
else if(user_select == 1)
{
printf("平局\n");
draw++;
break;
}
else if(user_select == 2)
{
printf("你输了\n");
pcwin++;
break;
}
}
case 2:
{
if(user_select == 0)
{
printf("你输了\n");
pc++;
break;
}
else if(user_select == 1)
{
printf("你赢了\n");
userwin++;
break;
}
else if(user_select == 2)
{
printf("平局\n");
draw++;
break;
}
}
default:
printf("游戏结束!\n");
return 1;
}
if(pcwin > userwin)
{
printf("电脑赢%d盘,你赢%d盘,平局%d盘,电脑获胜!\n",pcwin,userwin,draw);
}
else if(pcwin == userwin)
{
printf("电脑赢%d盘,你赢%d盘,平局%d盘,比分平!\n",pcwin,userwin,draw);
}
else if(pcwin < userwin)
{
printf("电脑赢%d盘,你赢%d盘,平局%d盘,你获胜了!\n",pcwin,userwin,draw);
}
}
return 0;
}