1.输入你的身高和体重,测试你的健康状况。
计算bmi的值,
bmi = (体重/身高的平方)
如果bmi 小于18.5,则显示“偏瘦,注意加强营养”
如果bmi 在18.5和23.9之间,则显示“体重指数良好,注意保持”
如果bmi值大于23.9 ,则显示“你有点偏胖,注意锻炼”
/*1.输入你的身高和体重,测试你的健康状况.*/#include <stdio.h>int main(void)
{float height,weight;printf("请输入您的身高(m):");scanf("%f",&height);printf("请输入您的体重(kg):");scanf("%f",&weight);float bmi = weight / (height * height);if(weight <= 0 || height <= 0){printf("身高和体重必须为正数,请重新输入\n");return 1;}if(bmi < 18.5){printf("偏瘦,注意加强营养\n");}else if(18.5 <= bmi && bmi <= 23.9){printf("体重指数良好,注意保持\n");}else{printf("你有点偏胖,注意锻炼\n");}return 0;}
2. 西安市对安装“一户一表”的居民用户按阶梯式累进电价进行计收电费,具体方案是,
月用电量低于50千瓦时部分,电价不调整,为0.538元/千瓦时;51~200千瓦时部分,
单价为0.568元/千瓦时;超过200千瓦时部分,电价为0.638元/千瓦时。市区徐某家4月份
的用电量为96千瓦时,其电费计算如下:基本电费部分:50千瓦时×0.538元/千瓦时=26.90元;
超出50千瓦时的调价电费:(96-50)千瓦时×0.568元/千瓦时=26.13元;电费合计26.90+26.13=53.03元 。
“阶梯式电价”机制可有效地抑制电力浪费现象,引导居民节约用电,合理用电,比纯粹“口号倡导型”
节约用电更加有效。
编写一个程序根据输入的用电量,计算电费。
/*2.编写一个程序根据输入的用电量,计算电费。*/#include <stdio.h>int main(void)
{float usage,cost = 0;printf("请输入四月份用电量(单位:千瓦时):");scanf("%f",&usage);if(usage < 0){printf("用电量不可以是负数,请重新输入!");return 1;}if(usage <= 50){cost = usage * 0.538;}else if(usage <= 200){cost = (usage - 50) * 0.568 + 50 * 0.538;}else{cost = (usage - 200) * 0.638 + 150 * 0.568 + 50 * 0.538;}printf("四月份的电费为:%.2f元\n",cost);return 0;}
3.设计一个计算个人所得税的软件,假设应纳税额可由如下公式计算:
应纳税所得额 = 工资收入金额 - 各项社会保险费 - 起征点(5000元)
应纳税额 = 应纳税所得额 x 税率 - 速算扣除数
若月收入额, 税率, 速算扣除数 关系如下表:
< 12000 10% 252
12000 ~25000 20% 1692
25000 ~35000 25% 3192
35000 ~ 55000 30% 5292
55000 ~ 80000 35% 8592
80000 以上 45% 18192
通过输入工资总额和社保费用计算应纳税额
(这个题我先琢磨琢磨,今天我想先发,我会回来写的)
我怎么算怎么是负数,脑子不清醒了(嗷,不是我的问题嘿嘿,是速算扣除数值太大了, 我把0改了)
/* 3.设计一个计算个人所得税的软件应纳税所得额 = 工资收入金额 - 各项社会保险费 - 起征点(5000元)应纳税额 = 应纳税所得额 x 税率 - 速算扣除数 */#include <stdio.h>int main(void)
{float salary,social_secuity,tax_income,tax; //定义变量工资,社保费用,应纳所得税,应纳税额printf("请输入您的工资总额(元):");scanf("%f",&salary);printf("请输入您的社保费用(元):");scanf("%f",&social_secuity);if(salary <= 0 || social_secuity < 0){printf("请输入正确的数值!");return 1;}//计算应纳所得额 //应纳税所得额 = 工资收入金额 - 社保费用 - 起征点(5000元)tax_income = salary - social_secuity - 5000;if(tax_income <= 0){tax = 0;}else if(tax_income <= 12000){tax = tax_income * 0.10 - 252; // 应纳税额 = 应纳税所得额 x 税率 - 速算扣除数}else if(tax_income <= 25000){tax = tax_income * 0.20 - 1692; //重复分支语句}else if(tax_income <= 35000){tax = tax_income * 0.25 - 3192;}else if(tax <= 55000){tax = tax_income * 0.30 - 5292;}else if(tax <= 80000){tax = tax_income * 0.35 - 8592;}else{tax =tax_income * 0.45 - 18192;}if(tax < 0){tax = 0; //tax应纳税额不应为负值}printf("您的应纳税额为:%.2f元\n",tax); //定义是float,返回也应该是%freturn 0;}
4.设计TVM(地铁自动售票机)机软件。
输入站数,计算费用,计费规则,6站2元,7-10站3元,11站以上为4元。
输入钱数,计算找零(找零时优先找回面额大的钞票),找零方式为各种面额张数,可识别面额:
100,50,20,10,5,1
当然前面if站数的花费也可以使用switch ... case语句
一步步找零,由大到小的找零
/*4.设计TVM(地铁自动售票机)机软件。输入站数,计算费用,计费规则,6站2元,7-10站3元,11站以上为4元。输入钱数,计算找零(找零时优先找回面额大的钞票),找零方式为各种面额张数,可识别面额:100,50,20,10,5,1 */#include <stdio.h>int main(void)
{int stations,payfor,cost;printf("请输入您要做的站数:");scanf("%d",&stations);printf("请输入您付的钱数:");scanf("%d",&payfor);if(stations <= 0){printf("站数必须大于等于1,请重新输入正确的站数!");return 1;}else if(stations <= 6){cost = 2;}else if(7 <= stations && stations <= 10){cost = 3;}else{cost = 4;}//找钱int nhand = 0,nfifty = 0,ntwenty = 0,nten = 0,nfive = 0, none =0;int payback = payfor - cost;//由大到小的找钱循环嵌套if(payback > 0){nhand = payback / 100;payback = payback - nhand * 100;if(payback > 0){nfifty = payback /50;payback = payback - nfifty * 50;if(payback > 0){ntwenty = payback / 20;payback = payback - ntwenty *20;if(payback > 0){nten = payback / 10;payback = payback - nten * 10;if(payback > 0){nfive = payback / 5;payback = payback - nfive * 5;if(payback > 0){none = payback;}}}}}}printf("%d张100元,%d张50元,%d张20元,%d张10元,%d张5元,%d张1元\n",nhand,nfifty,ntwenty,nten,nfive,none);return 0;
}
当然这里的站数的花费也可以使用sitch ... case语句,只是展示一下
#include <stdio.h>int main(void)
{int station, payfor, cost;scanf("%d%d", &station, &payfor);if (station <= 0) {printf("站数必须大于等于1,请重新输入正确的站数!\n");return 1;}switch (station) {case 6:cost = 2;break;case 7:case 8:case 9:case 10:cost = 3;break;default: // 如果station大于10,则执行default casecost = 4;break;}...//这里和上述代码就一样了}
5.通过键入输入一个年份和月份,输出显示该月有多少天。(考虑润年情况)
/*5.通过键入输入一个年份和月份,输出显示该月有多少天。(考虑润年情况)*/#include <stdio.h>int main(void)
{int year,month;printf("请输入年份:");scanf("%d",&year);printf("请输入月份:");scanf("%d",&month);//判断月份天数if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){printf("%d月份有31天\n",month);}else if(month == 4 || month == 6 || month == 9 || month == 11){printf("%d月份有30天\n",month);}else if(month == 2){//判断是否为润年if(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)){printf("%d月有29天\n",month);}else{printf("%d月有28天\n",month);}}else{printf("输入的月份不合法!\n");}return 0;}