C语言练习作业(二)
2015-11-12 14:14
447 查看
又是一个费了不少劲的难题,主要是数据类型比较麻烦,一直在翻资料,还好最后做到了无警告。
应该用“%f”输出的,用成了“%d”;
改成“%.2f”后,输出结果只剩两个小数点;
有些要点还是查看答案才想明白的,不能完全算是独立完成;
代码还有改进的余地,不过懒得改了。
题目: 企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元(100000< I≤200000)时,其中10万元按10%提成,高于10万元的部分,可提成7.5% ;200000< I≤400000时,其中20万元仍按上述办法提成(下同),高于20万元的部分按5%提成;400000< I≤600000时,高于40万元的部分按3%提成;600000< I≤1000000时,高于60万的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。
应该用“%f”输出的,用成了“%d”;
改成“%.2f”后,输出结果只剩两个小数点;
long fuck = (long)lirun / 100000;,一开始没有用显式的类型转换,所以会有警告;
有些要点还是查看答案才想明白的,不能完全算是独立完成;
代码还有改进的余地,不过懒得改了。
题目: 企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元(100000< I≤200000)时,其中10万元按10%提成,高于10万元的部分,可提成7.5% ;200000< I≤400000时,其中20万元仍按上述办法提成(下同),高于20万元的部分按5%提成;400000< I≤600000时,高于40万元的部分按3%提成;600000< I≤1000000时,高于60万的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。
#include<stdio.h> int main() { double lirun = 0;//当年利润 double jiangjin = 0;//应发奖金 printf_s("请输入当年利润:\n"); scanf_s("%lf", &lirun); /*if (lirun <= 100000) { jiangjin = lirun*0.1; printf_s("应发奖金为:%d", jiangjin); } else if (lirun > 100000 && lirun <= 200000) { jiangjin = 10000 + (lirun - 10000)*0.075; printf_s("应发奖金为:%d", jiangjin); } else if (lirun > 200000 && lirun <= 400000) { jiangjin = 10000 + 100000 * 0.075 + (lirun - 200000)*0.05; printf_s("应发奖金为:%d", jiangjin); } else if (lirun > 400000 && lirun <= 600000) { jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (lirun - 400000)*0.03; printf_s("应发奖金为:%d", jiangjin); } else if (lirun > 600000 && lirun <= 1000000) { jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (lirun - 600000)*0.015; printf_s("应发奖金为:%d", jiangjin); } else { jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (lirun - 1000000)*0.01; printf_s("应发奖金为:%d", jiangjin); }*/ long fuck = (long)lirun / 100000; if (fuck > 10) fuck = 10; switch (fuck) { case 0: jiangjin = lirun*0.1; printf_s("应发奖金为:%.2f", jiangjin); break; case 1: jiangjin = 10000 + (lirun - 10000)*0.075; printf_s("应发奖金为:%.2f", jiangjin); break; case 2: case 3: jiangjin = 10000 + 100000 * 0.075 + (lirun - 200000)*0.05; printf_s("应发奖金为:%.2f", jiangjin); break; case 4: case 5: jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (lirun - 400000)*0.03; printf_s("应发奖金为:%.2f", jiangjin); break; case 6: case 7: case 8: case 9: jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (lirun - 600000)*0.015; printf_s("应发奖金为:%.2f", jiangjin); break; case 10: jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (lirun - 1000000)*0.01; printf_s("应发奖金为:%.2f", jiangjin); break; } }
相关文章推荐
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 在C语言中转换时间的基本方法介绍