C语言基础:分支作业练习

作业一: 输入你的身高和体重,测试你的健康状况。
计算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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值