if,switch分支结构和while循环练习

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;
}

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值