#include
//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 //余下的位RATE3
int main(void) {
double basic,hours,gross,tax;
printf(\ printf(\ printf(\ printf(\ switch( get_first() ) {
case '1': basic = 8.75; break; case '2': basic = 9.33; break; case '3': basic = 10.00; break; case '4': basic = 11.20; break;
default: printf(\退出程序 }
printf(\ printf(\ scanf(\
if (hours > 40) hours = 40 + (hours - 40) * 1.5; gross = hours * basic;
printf(\ 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(\
printf(\ return(0); }
char get_first(void) //得到字符串中的第一个非空字符 { int ch;
while( isspace( ch = getchar() ) ); while ( getchar() != '\\n'); return ch; }
8.编写一个程序,显示一个菜单,为您提供加法、减法、乘法或除法的选项。获得您的选择后,该程序请求两个数,然后执行您选择的操作。该程序应该只接受它所提供的菜单选项。它应该使用float类型的数,并且如果用户未能输入数字应允许其重新输入。在除法的情况中,如果用户输入O作为第二个数,该程序应该提示用户输入一个新的值。一个典型的程序运行应该如下所示:
Enter the operation of your choice: a. add s. subtract m. multiply d. divide q. quic
Enter first number: 22.4 Enter second number: one one is not an number.
Please enter a number, such as 2.5. -1.78E8, or 3. 1 22.4 + 1 = 23.4
Enter the operation of your choice: a. add s. subtract m. multiply d. divide q. quit
Enter first number: 18.4 Enter second number: O
Enter a number other than 0: 0.2 18.4 / 0.2 = 92
Enter the operation of your choice: a. add s. subtract m. multiply d. divide q. quit q Bye.
#include
int main(void)
{
char select; float num1,num2; while(1) {
printf(\ printf(\ printf(\ printf(\ select = get_first();
if( select != 'a' && select != 's' && select != 'm' && select != 'd') {
printf(\ break; }
printf(\ num1 = get_float();
printf(\ num2 = get_float();
while( select == 'd' && num2 == 0) {
printf(\ num2 = get_float(); }
switch(select) {
case 'a': printf(\ case 's': printf(\ case 'm': printf(\ case 'd': printf(\ default : break; } }
return(0); }
float get_float(void) //得到一个合适的浮点数,滤除非法数 {
float num; char str[40];
while(scanf(\ {
gets(str);
printf(\
printf(\ }
while ( getchar() != '\\n'); return num; }
char get_first(void) //得到字符串中的第一个字符,滤除其他字符 { int ch;
while( isspace( ch = getchar() ) ); while ( getchar() != '\\n'); return ch; }
第9章 函 数 编程练习
1.设计函数 min(x,y),返回两个double数值中较小的数值,同时用一个简单的驱动程序测试该函数。
#include
double min(double ,double );
int main(void) {
double x,y;
printf(\ scanf(\
printf(\ return(0); }
double min(double a,double b) {
return a
2.设计函数chline(ch, i, j),实现指定字符在i列到j列的输出,并用一个简单的驱动程序测试该函数。
#include
void chline(char , int , int );
int main(void) { int x,y; char ch;
printf(\ scanf(\
printf(\ scanf(\ chline(ch,x,y); return 0; }
void chline(char ch, int i, int j) { int k;
for(k=1; k
3.编写一个函数。函数的3个参数是一个字符和两个整数。字符参数是需要输出的字符。第一个整数说明了在每行中该字符输出的个数,而第二个整数指的是需要输出的行数。编写一个调用该函数的程序。
#include
void chline(char , int , int );
int main(void) { int x,y; char ch;
printf(\ scanf(\
printf(\ scanf(\ chline(ch,x,y); return 0;