c primer plus 第七章

来源:互联网 发布:数据存储存储在哪里 编辑:程序博客网 时间:2024/09/21 08:55
8.修改练习7中的假设a,使程序提供一个选择工资等级的菜单。用switch选择工资等级。程序运行的开头应该像这样:
Enter the number corresponding to the desired pay rate or action:
1) $8.75/hr                  2) $9.33/hr
3) $lO.OO/hr                 4) $11.20/hr
5) quit

    如果选择l到4.那么程序应该请求输入工作小时数。程序应该一直循环运行,直到输入5。如果输入l到5以外的选项,那么程序应该提醒用户合适的选项是哪些,然后再循环。用#define为各种工资等级和税率定义常量。

#include<stdio.h>int get_int(void);//b.加班#define TIME 40  //加班(超过TIME小时) =#define ADD  1.5  //ADD倍的时间//c.税率#define LIMIT1 300  //前LIMIT1美元为RATE1#define RATE1 0.15#define LIMIT2 150  //下一个LIMIT2美元为RATE2#define RATE2 0.20#define RATE3 0.25 //余下的位RATE3int main(void){double basic,hours,gross,tax;while(1){printf("Enter the number corresponding to the desired pay rate or action:\n");printf("1)$8.75/hr\t\t2)$9.33/hr\n");printf("3)$10.00/hr\t\t4)$11.20/hr\n");printf("5)quit\n");switch(get_int()){case 1: basic= 8.75;break;case 2: basic= 9.33;break;case 3:basic= 10.00;break;case 4:basic= 11.20;break;case 5:printf("quit\n");return 0;default:continue;//结束这次循环}printf("you have select $%.2lf\n",basic);printf("input the work hours of a week:");scanf("%lf",&hours);if (hours > 40) hours = 40 + (hours - 40) * 1.5;gross = hours * basic;printf("gross income:\t\t%lf\n",gross);if (gross <= LIMIT1) tax = gross * RATE1;else if (gross <= LIMIT2) tax = LIMIT1 * RATE1 + (gross - LIMIT1) * RATE2;else tax = LIMIT1 * RATE1 + LIMIT2 * RATE2 + (gross - LIMIT1 - LIMIT2) * RATE3;printf("tax:\t\t\t%lf\n",tax);printf("net income:\t\t%lf\n",gross - tax);}}int get_int(void) //得到一个合适的整数,滤除非法数{ int num; char str[40]; while(scanf("%d",&num)!=1) {  gets(str);  printf("error! %s is not a number. input again.\n",str); } return num;}

9.编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数。


#include <stdio.h>#include <math.h>int main(void){int number,i,j,temp,l;printf("Please input a number\n");scanf("%d",&number);for(i=2;i<=number;i++){l= 1;temp=(int)sqrt((double)i);for(j=2;j<=temp;j++){if(i%j== 0){l=0;break;}}if(l==1)printf("%d\n",i);}return 0;}


原创粉丝点击