C primer plus 第七章 练习8:修改练习7,假设a,使程序提供一个选择工资等级的菜单,用switch选择工资等级,程序运行的开头应该像下面这样:
2016-05-19 23:59
651 查看
请先择一个工资等级:
1) 8.75/小时2)8.75/小时 2) 9.33/小时
3) 10.0/小时4)10.0/小时 4) 11.20/小时
5) quit
1) 8.75/小时2)8.75/小时 2) 9.33/小时
3) 10.0/小时4)10.0/小时 4) 11.20/小时
5) quit
#include <stdio.h> #define SL15 0.15 #define SL20 0.20 #define SL25 0.25 #define GZ1 8.75 #define GZ2 9.33 #define GZ3 10.00 #define GZ4 11.20 void gzdj(void); int main(void) { int x, n; double gzh, gz, shui, jgz; gzdj(); while((scanf("%d", &x) != 0)) { switch (x) { case 1: gzh = GZ1; break; case 2: gzh = GZ2; break; case 3: gzh = GZ3; break; case 4: gzh = GZ4; break; } if(x < 5) { printf("请输入您工作的时间: "); scanf_s("%d", &n); if(n <= 40) gz = n * gzh; else gz = ((n - 40) * 1.5 + 40) * gzh; if(gz <= 300) shui = gz * SL15; else if(gz <= 450) shui = (gz - 300) * SL20 + 300 * SL15; else shui = (gz - 450) * SL25 + 300 * SL15 + 150 * SL20; jgz = gz - shui; printf("您工资总额为:$%6.2f,税金为:$%6.2f,净工资为:$%6.2f.\n\n\n", gz, shui, jgz); printf("请输入您工作的时间: \n"); gzdj(); }else if(x == 5) { break; }else{ printf("输入有误,请重新输入.\n"); gzdj(); } } return 0; } void gzdj(void) { printf("*****************************************************************\n"); printf("Enter the number corresponding to the desired pay rate or action:\n"); printf("1)$8.75/hr 2)$9.33/hr\n"); printf("3)$10.00/hr 4)$11.20/hr\n"); printf("5)quit\n"); printf("*****************************************************************\n\n"); }
相关文章推荐
- 安卓中关于对话框的四种写法
- 归并排序
- 写博客的过程真的体会到了什么叫知易行难
- JSP和JS的区别(新手必读)
- MVC 5 的 EF6 Code First 入门
- c#入门第一章
- 快排
- 洛谷 P1156 垃圾陷阱
- java.util.concurrent.locks与synchronized及其异同
- 插入排序
- C++实现的大整数分解Pollard's rho算法程序
- 操作系统知识(3)--Linux 文件
- 正则表达式语法
- 设计模式之单例模式
- 解决 activity 和 fragment 传递数据方法。
- android开发笔记之ViewPager新手导航页(动态加载指示器)
- 冒泡排序
- python线程和GIL
- Fragment之间的数据传递
- hdu_3067_小t的游戏(脑洞)