作业一: 输入你的身高和体重,测试你的健康状况。
计算bmi的值, bmi = (体重(kg)/身高(m)的平方)
如果bmi 小于18.5,则显示“偏瘦,注意加强营养”
如果bmi 在18.5和23.9之间,则显示“体重指数良好,注意保持”
如果bmi值大于23.9 ,则显示“你有点偏胖,注意锻炼”
#include <stdio.h>
int main()
{
float weight, height, bmi;
printf("请输入您的体重(kg): ");
scanf("%f", &weight);
printf("请输入您的身高(m): ");
scanf("%f", &height);
bmi = weight / (height * height);
if (bmi < 18.5)
{
printf("偏瘦,注意加强营养\n");
}
else if (bmi <= 23.9)
{
printf("体重指数良好,注意保持\n");
}
else
{
printf("你有点偏胖,注意锻炼\n");
}
printf("您的 BMI 值为: %.2f\n", bmi);
return 0;
}
作业2:西安市对安装“一户一表”的居民用户按阶梯式累进电价进行计收电费,具体方案是:
低于50千瓦时部分,电价不调整,仍为0.538元/千瓦时;
51~200千瓦时部分, 单价为0.568元/千瓦时;
超过200千瓦时部分,电价为0.638元/千瓦时。
编写一个程序根据输入的用电量,计算电费。
#include <stdio.h>
int main()
{
double electricity,costs = 0;
printf("请输入用电:");
scanf("%lf", &electricity);
if ( electricity <= 50 && electricity >= 0 )
{
costs = electricity * 0.538;
}
else if ( electricity <= 200 && electricity >= 51 )
{
costs = 50 * 0.538 + ( electricity - 50 ) * 0.568;
}
else if ( electricity > 200 )
{
costs = 50 * 0.538 + 150 * 0.568 + ( electricity - 200 ) * 0.638;
}
else if ( electricity < 0 )
{
printf("无效输入!");
}
printf("费用为:%.2lf", costs);
return 0;
}
作业3:设计一个计算个人所得税的软件
应纳税所得额 = 工资收入金额 - 各项社会保险费(650元) - 起征点(3500元)
应纳税额 = 应纳税所得额 x 税率 - 速算扣除数
应纳税额 = ( 工资收入金额 - 各项社会保险费(650元) - 起征点(3500元) ) x 税率 - 速算扣除数
通过输入工资总额和社保费用计算应纳税额。
#include <stdio.h>
int main()
{
// salary:工资 tax:税
double salary, tax = 0;
printf("请输入工资:");
scanf("%lf", &salary);
if ( salary <= 36000 )
{
tax = ( salary - 4150 ) * 0.03 - 0 ;
}
else if ( salary > 36000 && salary <= 144000 )
{
tax = ( salary - 4150 ) * 0.10 - 2520 ;
}
else if ( salary > 144000 && salary <= 300000 )
{
tax = ( salary - 4150 ) * 0.20 - 16920 ;
}
else if ( salary > 300000 && salary <= 420000 )
{
tax = ( salary - 4150 ) * 0.25 - 31920 ;
}
else if ( salary > 420000 && salary <= 660000 )
{
tax = ( salary - 4150 ) * 0.30 - 52920 ;
}
else if ( salary > 6600000 && salary <= 960000 )
{
tax = ( salary - 4150 ) * 0.35 - 85920 ;
}
else if ( salary > 960000 )
{
tax = ( salary - 4150 ) * 0.45 - 181920 ;
}
printf("%.2lf", tax);
return 0;
}
作业4:设计TVM(地铁自动售票机)机软件。
输入站数,计算费用,计费规则,6站2元,7-10站3元,11站以上为4元。
输入钱数,计算找零(找零时优先找回面额大的钞票),找零方式为各种面额张数。
可识别面额:100,50,20,10,5,1
#include <stdio.h>
int main()
{
// stations:站点 amount:金额 fee:费用 change: 找零
int stations, amount, fee, change;
// denominations:面额数组
int denominations[] = {100, 50, 20, 10, 5, 1};
// counts:计数数组
int counts[6] = {0};
int i;
// 输入站数
printf("输入乘坐站数: ");
scanf("%d", &stations);
// 计算费用
if ( stations <= 6 )
{
fee = 2;
}
else if ( stations <= 10 )
{
fee = 3;
}
else
{
fee = 4;
}
printf("您的票价为: %d元\n", fee);
// 输入金额
printf("请投入金额: ");
scanf("%d", &amount);
// 计算找零
change = amount - fee;
printf("应找零: %d元\n", change);
// 计算各种面额张数
for ( i = 0; i < 6; i++ )
{
counts[ i ] = change / denominations[ i ];
change %= denominations[ i ];
}
// 输出找零结果
printf("找零明细:\n");
for ( i = 0; i < 6; i++ )
{
if ( counts[ i ] > 0 )
{
printf("%d张 %d元\n", counts[ i ], denominations[ i ]);
}
}
return 0;
}
作业5:出租车费计算程序,
起步公里数3公里,车费8元,
超出3公里,每公里1.8元,
不足一公里,按照1公里计算。
如果输入一个钱数,计算最多能坐多少公里,该如何实现?
#include <stdio.h>
int main()
{
int money, distance;
printf("请输入钱数(元):");
scanf("%d", &money);
if ( money <8 )
{
printf("钱不够!");
}else if ( money == 8 )
{
printf("最多能坐 3 公里。");
}else if ( money > 8 )
{
money = money - 8;
distance = money / 1.8 + 3;
}
printf("最多能坐 %d 公里。", distance);
return 0;
}
作业6:通过键入输入一个年份和月份,输出显示该月有多少天。(考虑润年情况)
闰年计算规则:(year % 400==0) || (year % 4 == 0 && year % 100 != 0)
#include <stdio.h>
int main()
{
int year, month;
int days = 0;
int i;
printf("请输入年份和月份,用空格分隔:");
scanf("%d %d", &year, &month);
// 判断闰年
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
{
i = 1;
}
else
{
i = 0;
}
// 判断月份
if (month == 2)
{
days = i ? 29 : 28;
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
days = 30;
}
else
{
days = 31;
}
printf("%d年%d月有%d天。\n", year, month, days);
return 0;
}
作业7:实现一个简单的计算器,要求根据输入的运算符实现相应的运算。
#include <stdio.h>
int main()
{
double num1, num2, result;
char o;
printf("请输入:");
scanf("%lf %c %lf",&num1, &o, &num2);
switch (o) {
case '+':
result = num1 + num2;
printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);
break;
case '-':
result = num1 - num2;
printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result);
break;
case '*':
result = num1 * num2;
printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result);
break;
case '/':
if (num2 == 0)
{
printf("错误:除数不能为零\n");
return 1;
}
result = num1 / num2;
printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result);
break;
default:
printf("错误:不支持的运算符 %c\n", o);
return 1;
}
return 0;
}
作业8:三角形类型判断程序
题目要求:输入三个整数作为三角形的三条边长,判断并输出该三角形的类型:
如果三条边能构成等边三角形,输出“等边三角形”;
如果三条边能构成等腰三角形,输出“等腰三角形”;
如果三条边能构成普通三角形,输出“普通三角形”;
如果不能构成三角形,输出“不是三角形”。
#include <stdio.h>
int main()
{
int a, b, c;
printf("请输入三角形的三条边长,用空格分隔:");
scanf("%d %d %d", &a, &b, &c);
// 使用if语句判断是否能构成三角形
if ((a + b <= c) || (a + c <= b) || (b + c <= a))
{
printf("不是三角形\n");
}
else
{
// 判断三角形类型
if (a == b && b == c)
{
printf("等边三角形\n");
}
else if (a == b || a == c || b == c)
{
printf("等腰三角形\n");
}
else
{
printf("普通三角形\n");
}
}
return 0;
}