1.输入你的身高和体重,测试你的健康状况。
计算bmi的值,
bmi = (体重/身高的平方)
如果bmi 小于18.5,则显示“偏瘦,注意加强营养”
如果bmi 在18.5和23.9之间,则显示“体重指数良好,注意保持”
如果bmi值大于23.9 ,则显示“你有点偏胖,注意锻炼”
/*1.输入你的身高和体重,测试你的健康状况.*/
#include
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
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
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,返回也应该是%f
return 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
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
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 case
cost = 4;
break;
}
...//这里和上述代码就一样了
}
5.通过键入输入一个年份和月份,输出显示该月有多少天。(考虑润年情况)
/*5.通过键入输入一个年份和月份,输出显示该月有多少天。(考虑润年情况)*/
#include
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;
}