6.编写一个程序读取输入,直到#,并报告序列ei出现的次数。
此程序必须要记住前一个字符和当前的字符。用诸如“Receive your eieio award.”的输入测试它。
#include <stdio.h>
int main(void)
{
int count= 0;
char formar= 0, ch;
printf("Type your words\n");
printf("End with '#'\n");
while((ch=getchar())!='#')
{
if((formar=='e')&&(ch=='i')) count++;
formar=ch;
}
printf("%d times ei\n",count);
return 0;
}
这个程序关键在怎么处理ei,定义两个符号变量,循环一次后,将后边变量的值赋给前边的变量。
7.编写程序,要求输入一周中的工作小时数,然后打印工资总额、税金以及净工资。作如下假设:
a.基本工资等级=10.00美元//J,时
b.加班(超过40小时)=1.5倍的时间
c.税率 前300美元为15%
下一个150美元为20%
余下的为25%
用#define定义常量,不必关心本例是否符合当前的税法。
#include <stdio.h>
//基本工资
#define BASIC 10.00 //10.00$/hour
//加班时间
#define MORE 1.5 //1.5 times work tiem
//rate
#define RATE1 0.15
#define RATE2 0.2
#define RATE3 0.25
#define SALARY1 300
#define SALARY2 150
int main(void)
{
double hours,salary= 0,tax= 0,salary_left= 0;
printf("Please input your work hours\n");
scanf("%lf",&hours);
if(hours<= 40)
salary= BASIC* hours;
else
salary= BASIC* 40+ BASIC* (hours-40)*MORE;
if(salary<= SALARY1)
tax= salary* RATE1;
else if(salary<= SALARY1+SALARY2)
tax= SALARY1* RATE1+ (salary- SALARY1)* RATE2;
else
tax= SALARY1* RATE1+ SALARY2* RATE2+ (salary-SALARY1-SALARY2)*RATE3;
salary_left= salary- tax;
printf("salary %lf\n",salary);
printf("tax %lf\n",tax);
printf("salary_left %lf\n",salary_left);
return 0;
}