C Primer Plus 第9章 函数 编程练习
2017-05-24 12:35
302 查看
复习题:
编程练习:
8. int choice(int a,int b,int c){ int max; max = a; if (b > max) max = b; if (c > max) max = c; return max; }
9. #include <stdio.h> void menu(void); int choice(int low,int high); int main(void){ menu(); int ch = choice(1,4); switch (ch){ case 1:printf("you choice is : copy files\n"); break; case 2:printf("you choice is : move files\n"); break; case 3:printf("you choice is : remove files\n"); break; case 4:break; } printf("Bye~"); return 0; } void menu(void){ printf("Please choose one of the following:\n"); printf("1) copy files 2) move files\n"); printf("3) remove files 4) quit\n"); printf("Enter the number of your choice:"); return; } int choice(int low,int high){ int ch; if (scanf("%d", &ch) != 1) return 4; while (ch > high || ch < low){ menu(); ch = choice(1,4); } return ch; }
编程练习:
1. #include <stdio.h> double min(double a, double b); int main(void){ double x = 1.0; double y = 2.0; double c; c = min(1,2); printf("%.2f", c); } double min(double a, double b){ return ( b < a ? b : a); }
2. #include <stdio.h> void chline(char ch, int i, int j); int main(void){ char ch = '*'; int row = 5, col = 10; chline(ch,row,col); return 0; } void chline(char ch, int i, int j){ for (int x = 0; x < i; ++x) { for (int y = 0; y < j; ++y) { putchar(ch); } putchar('\n'); } }
3. #include <stdio.h> void chline(char ch, int i, int j); char character(void); int number(void); int main(void){ char ch; int row, col; while ((ch = character()) != 'q'){ printf("Please enter the number of lines to be printed:"); row = number(); printf("Please enter the number of columns to be printed:"); col = number(); chline(ch, row, col); } return 0; } void chline(char ch, int i, int j){ for (int x = 0; x < i; ++x) { for (int y = 0; y < j; ++y) { putchar(ch); } putchar('\n'); } } char character(void){ char ch; printf("Please enter the character you need print(q to quit):"); while ((ch = getchar()) == '\n') continue; while (getchar() != '\n') continue; return ch; } int number(void){ int num; char ch; while (scanf("%d", &num) != 1){ while ((ch = getchar()) != '\n') //处理错误输出*** putchar(ch); printf("is not an number.\n"); printf("Please enter an number such as 3,5"); } if (num <= 0){ printf("Please enter the number than 0:"); while ((ch = getchar()) != '\n') //处理错误输出 putchar(ch); num = number(); } return num; }
4. #include <stdio.h> double countdouwn_average(double num1, double num2); int main(void){ double a = 10, b = 20, c; c = countdouwn_average(a,b); printf("%lf",c); return 0; } double countdouwn_average(double num1, double num2){ double countdown1,countdown2,ctd_average; countdown1 = 1 / num1; countdown2 = 1 / num2; ctd_average = 1 / ((countdown1 + countdown2) / 2); return ctd_average; }
5. #include <stdio.h> void larger_of(double * num1, double * num2); int main(void){ double a = 10, b = 20; larger_of(&a,&b); printf("%.2lf %.2lf", a, b); return 0; } void larger_of(double * num1, double * num2){ double max; max = *num1 > *num2 ? *num1 : *num2; *num1 = max; *num2 = max; return; }
6. #include <stdio.h> void larger_of(double * num1, double * num2, double * num3); int main(void){ double a = 60, b = 39, c = 50; larger_of(&a,&b,&c); printf("%.2lf %.2lf %.2lf", a, b, c); return 0; } void larger_of(double * num1, double * num2, double * num3){ double max,min,c; max = * num1; if (max < *num2) max = *num2; if (max < *num3) max = *num3; min = * num1; if (min > *num2) min = *num2; if (min > *num3) min = *num3; c = *num1 + *num2 + *num3 - min - max; *num1 = min; *num2 = c; *num3 = max; }
7. #include <stdio.h> #include <ctype.h> int show_location(char ch); int main(void){ char ch; printf("Please enter the charaster:"); while ((ch = getchar()) != '\n'){ //ch = getchar()要框起来。 printf("%c,%d\n", ch,show_location(ch)); } return 0; } //用isaplpa 和 toupper我是真不会。看了答案 //发现答案真机智~ int show_location(char ch){ int result; if (isalpha(ch)){ result = toupper(ch) - 'A' + 1; } else result = -1; return result; }
8. #include <stdio.h> double power(double n, double p); int main(void){ double a = 2,b = 2; printf("%lf", power(a,b)); return 0; } double power(double n, double p){ double pow = 1; int i; if (n == 0) return 0; if (p == 0) return 1; if (p > 0){ for (i = 1;i <= p; i++) { pow = pow * n; } return pow; } if (p < 0){ for (i = 1;i <= -p ; i++) { pow = pow * n; } return 1 / pow; } }
9. #include <stdio.h> double power(double n, double p); int main(void){ double a = 2,b = -2; printf("%lf", power(a,b)); return 0; } double power(double n, double p){ double pow = 1; int i; if (n == 0) return 0; if (p == 0) return 1; if (p > 0){ for (i = 1;i <= p; i++) { pow = pow * n; } return pow; } if (p < 0){ return 1 / power(n, -p); } }
10. #include <stdio.h> void to_binary(int a, int b); int main(void){ int a,b; char ch; printf("Please enter an integer(q to quit):"); while (scanf("%d", &a) == 1){ printf("Please enter number base (2-10):"); while (scanf("%d", &b) == 1 && b >= 2 && b <= 10){ to_binary(a,b); putchar('\n'); break; } while ((ch = getchar()) != '\n'); //处理错误输入 printf("Please enter an integer(q to quit):"); } return 0; } void to_binary(int a, int b){ int r; r = a % b; if (a > b) to_binary(a / b, b); printf("%d", r); //暂时不理解putchar('0' + r)是什么意思,所以就先用这个吧。 return; }
相关文章推荐
- C Primer Plus (第五版) 第九章 函数 编程练习
- C++ Primer Plus课后编程练习——第七章 函数-C++的编程模块(部分)
- C++ Primer Plus 第五版 第六章 编程练习 7
- C Primer Plus 13章编程练习7问题
- C Primer+Plus(十七)高级数据表示 编程练习(一)
- C Primer Plus 编程练习代码——第2章
- 函数——c++的编程模块(c++primer plus 第七章)
- C++ Primer Plus(第6版) 第7章 编程练习
- C++ Primer Plus学习:第七章 函数-C++的编程模块(4)
- C++ Primer Plus学习:第七章 函数-C++的编程模块(3)
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第4章编程练习3
- C primer plus第9章(函数)习题
- 【C++ Primer Plus 编程练习】 2.7
- C Primer+Plus(十七)高级数据表示 编程练习(二)
- 《C++ Primer Plus》14章编程练习1、2
- C++ Primer Plus 第五版 第七章 编程练习 5 6
- C++ Primer Plus(第6版) 第5章 编程练习
- C++ Primer Plus(第6版) 第6章 编程练习
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第4章编程练习1
- C Primer Plus(九)编程练习