C Primer Plus 第八章 编程练习 1-8题
2017-03-09 20:02
225 查看
第一题
第二题
第三题
第四题
第五题
第六题
第七题
第八题
#include<stdio.h> int main(void) { int Counts = 0; char Letters; printf("Please Input:\n"); while((Letters = getchar()) != EOF) ++Counts; printf("You Had Inputed %d Letters.",Counts); return 0; }
第二题
#include<stdio.h> const int LenColumn = 10; const int MaxLen = 100; int main(void) { char Letters; char Words[MaxLen]; int Counts = 0; printf("PLease Input Words To Test:\n"); while((Letters = getchar()) != EOF) { Words[Counts] = Letters; ++Counts; } Words[Counts] = '\0'; for(int i = 0 ; i < Counts ; ++i) { if(Words[i] == '\n') printf("\\n/%d ",Words[i]); else if(Words[i] == '\t') printf("\\t/%d ",Words[i]); else if(Words[i] == ' ') printf("\\b/%d ",Words[i]); else printf("%c/%d ",Words[i],Words[i]); if((i + LenColumn) % LenColumn == 0 && i != 0) printf("\n"); } return 0; }
第三题
#include<stdio.h> #include<ctype.h> int main(void) { int UpperCounts = 0; int LowerCounts = 0; char Letters; printf("Please Input Word To Test:\n"); while((Letters = getchar()) != EOF) { if(isupper(Letters)) ++UpperCounts; if(islower(Letters)) ++LowerCounts; } printf("%d Lower And %d Upper.\n",LowerCounts,UpperCounts); return 0; }
第四题
#include<stdio.h> #include<ctype.h> #include<stdbool.h> int main(void) { int WordsCounts = 0; int LettersCounts = 0; bool isWord = false; char Letters; printf("PLease Input Words To Test:\n"); while((Letters = getchar()) != EOF) { if(isalpha(Letters)) { isWord = true; ++LettersCounts; } if(!isalpha(Letters) && isWord == true) { ++WordsCounts; isWord = false; } } printf("We Get %d Words And %d Letters.\n",WordsCounts,LettersCounts); printf("Every Word Have %0.2lf Letters.\n",(double)LettersCounts/WordsCounts); return 0; }
第五题
#include<stdio.h> int main(void) { printf("I Guess 50\n"); int realResult = 50; char ch; int MAX = 100; int MIN = 0; while((ch = getchar()) != 'y') { if(ch == 'u') //to up MIN = realResult; else if(ch == 'l') //to low MAX = realResult; else printf("Sorry ,I Can't UnderStand %c",ch); printf("I Guess %d",(MAX+MIN)/2); realResult = (MAX + MIN) / 2; getchar(); } printf("I Get Real Result %d.",realResult); return 0; }
第六题
#include<stdio.h> const char Space = ' '; int get_first(void); int main(void) { char showChar; showChar = get_first(); printf("%c",showChar); return 0; } int get_first(void) { char ch; while((ch = getchar()) == Space) continue; return ch; }
第七题
#include<stdio.h> #include<stdbool.h> #include<iso646.h> #define PayHour 40.0 #define PayLevel_1 300.0 #define PayLevel_2 450.0 int main(void) { bool on_off = true; bool Choose = true; char HR; double WageHour; while(on_off) { printf("**********************************************\n"); printf("A)8.75/hr B)9.33/hr\n"); printf("C)10.00/hr D)11.20/hr\n"); printf("Q)Quit\n"); printf("**********************************************\n"); //Create menu scanf("%c",&HR); getchar(); switch(HR) { case 'A':WageHour = 8.75; break; case 'B':WageHour = 9.33; break; case 'C':WageHour = 10.00; break; case 'D':WageHour = 11.20; break; case 'Q':on_off = false; printf("Done!"); break; default:printf("There.s A Wrong,Please Try Input Again.\n"); Choose = false; } if(Choose == false or on_off == false) //choose 5 or 4 continue; double WorkTime; printf("Please Input Your Hours:\n"); scanf("%lf",&WorkTime); getchar(); if(WorkTime > PayHour) WorkTime = (WorkTime-PayHour) * 1.5 + PayHour; double Wages = WorkTime * WageHour; double Level_1 = PayLevel_1 * (1-0.15); double Level_2 = (PayLevel_2 - PayLevel_1) * (1-0.2); if(Wages < PayLevel_1) Wages = Wages * (1-0.15); else if(Wages >= PayLevel_1 && Wages < PayLevel_2) Wages = Level_1 + (Wages-PayLevel_1) * (1-0.2); else if(Wages >= PayLevel_2) Wages = Level_1 + Level_2 +(Wages-PayLevel_2) * (1-0.25); printf("Your Wages Are %.2lf\n",Wages); } return 0; }
第八题
#include<stdio.h> #include<stdbool.h> void Counts(char types); int main(void) { bool on_off = true; while(on_off) { char Choice; printf("Please Input Your Choice:\n"); printf("a.add s.subtract\n"); printf("m.multiply d.divide\n"); a1f4 printf("q.quit\n"); scanf("%c",&Choice); getchar(); switch(Choice) { case 'a':Counts(Choice); break; case 's':Counts(Choice); break; case 'm':Counts(Choice); break; case 'd':Counts(Choice); break; case 'q':printf("Bye.\n"); on_off = false; break; default:printf("Bye!\n"); on_off = false; } } return 0; } void Counts(char types) { double FirstNumber; double SecondNumber; printf("Input First Number:\n"); while(!scanf("%lf",&FirstNumber)) { printf("Input First Number:\n"); getchar(); } printf("Input Second Number:\n"); while(!scanf("%lf",&SecondNumber) || (SecondNumber == 0 && types == 'd')) { printf("Input Second Number:\n"); getchar(); } switch(types) { case 'a':printf("%.2lf + %.2lf = %.2lf\n",FirstNumber,SecondNumber,FirstNumber+SecondNumber); break; case 's':printf("%.2lf - %.2lf = %.2lf\n",FirstNumber,SecondNumber,FirstNumber-SecondNumber); break; case 'm':printf("%.2lf * %.2lf = %.2lf\n",FirstNumber,SecondNumber,FirstNumber*SecondNumber); break; case 'd':printf("%.2lf / %.2lf = %.2lf\n",FirstNumber,SecondNumber,FirstNumber/SecondNumber); break; } }
相关文章推荐
- C primer plus(第五版)编程练习第八章
- 记录——《C Primer Plus (第五版)》第八章编程练习第五题
- C++ primer plus(sixth edition) 编程练习答案(answers for programing exercises)第八章(chapter 8) 1-4
- 《c primer plus》编程练习回顾-第八章
- 记录——《C Primer Plus (第五版)》第八章编程练习第四题
- c++ primer plus(第6版)中文版 第八章编程练习答案
- 记录——《C Primer Plus (第五版)》第八章编程练习第八题
- C++ Primer Plus第六版 第八章 编程练习答案
- c++.primer.plus第五版第八章编程练习答案
- 记录——《C Primer Plus (第五版)》第八章编程练习第六题
- 记录——《C Primer Plus (第五版)》第八章编程练习第二题
- C++ Primer Plus (第6版)编程练习 代码-----第八章
- C primer plus 第八章 字符输入输出与输入验证 编程练习 个人答案
- C++ Primer Plus第五版 第八章 编程练习答案
- C++ primer plus 第八章编程练习
- c++ primer plus(文章6版本)中国版 编程练习答案第八章
- C Primer Plus (第五版) 第八章 编程练习
- 记录——《C Primer Plus (第五版)》第八章编程练习第三题
- 【学习C++】C++ Primer Plus (第六版)第八章编程练习1-7
- C ++ Primer Plus 第六版 第八章编程练习答案