C.Primer.Plus(第六版)第七章 编程练习
2017-04-26 15:10
399 查看
#include<iostream> #include<string> using namespace std; double program_7_1(double x,double y); int pro_7_2_set_arr(double [],int size); void pro_7_2_show_arr(double *,int size); double pro_7_2_average_arr(double arr[],int size); long double probability(unsigned t_numbers,unsigned t_picks,unsigned s_numbers,unsigned s_picks); struct box { char maker[40]; float height; float width; float length; float volume; }; void pro_7_3_a(box stru); void pro_7_3_b(box* stru); long double factorial(int n); int pro_7_6_Fill_array(double arr[],int size); void pro_7_6_Show_array(double arr[],int size); void pro_7_6_Reverse_array(double arr[],int size); double* pro_7_7_fill_array(double *arr,int limit); void pro_7_7_show_array(const double* ps_beg,const double* ps_end); void pro_7_7_revalue(double r,double* ps_beg,double* ps_end); const char* season[4]={"Spring","Summer","Fail","Winter"}; void pro_7_8_a(double arr[],int size); struct str_pro { double str_dou[4]; }; void pro_7_8_b(str_pro xx,int size); const int SLEN= 30; struct student { char fullname[SLEN]; char hobby[SLEN]; int ooplevel; }; int getinfo(student pa[],int n); void display1(student st); void display2(const student* ps); void display3(const student pa[],int n); double calculate(double d1,double d2,double (*pm)(double d3,double d4)); double add(double x,double y); double mul(double x,double y); double sub(double x,double y); int main() { /* //7_1 double x,y; int err_set=0; cout<<"Please enter two number(enter number 0 to quit):"; while(cin>>x>>y) { if(x!=0&&y!=0) { cout<<"The harmonic average is "<<program_7_1(x,y)<<endl; cout<<"Please input next two number:"; } else { cout<<"The input data contains 0,end.\n "; err_set++;//用于判断 4000 正常结束还是类型不匹配而结束程序。 break; } } if(err_set==0) cout<<"The input data type dismatch.\n"; */ /* //7.2 double golf_score[10]; int size = pro_7_2_set_arr(golf_score,10); pro_7_2_show_arr(golf_score,size); double average = pro_7_2_average_arr(golf_score,size); cout<<"\n"<<average<<endl; */ /* //7.3 box pro_box={"baseball",2.1f,3,2.3f,32}; pro_7_3_a(pro_box); pro_7_3_b(&pro_box); */ /* //7.4 double total,t_choices,specially,s_choices; cout<<"Enter the total number of choices on the game card and\nthe number of picks allowed:"; if((cin>>total>>t_choices>>specially>>s_choices)&&total>=t_choices&&specially>=s_choices) { cout<<"Your have one chance in "; cout<<probability(total,t_choices,specially,s_choices); cout<<" of wining.\n"; } cout<<"bye!\n"; */ /* //7.5 // long double x = factorial(-1); 函数将返回-1.#IND/nan,一般它们来自于任何未定义结果(非法)的浮点数运算。这里对一个负数求阶乘即非法。 long double x=factorial(5); cout<<x<<endl; */ /* //7.6 double pro_7_6[10]; int size=pro_7_6_Fill_array(pro_7_6,10); pro_7_6_Show_array(pro_7_6,size); pro_7_6_Reverse_array(pro_7_6,size); pro_7_6_Show_array(pro_7_6,size); */ /* //7.7 double pro_7_7[10]; double* pro_end=pro_7_7_fill_array(pro_7_7,10); pro_7_7_show_array(pro_7_7,pro_end); pro_7_7_revalue(1.2,pro_7_7,pro_end); pro_7_7_show_array(pro_7_7,pro_end); */ /* //7.8_a double pro_7_8[4]; pro_7_8_a(pro_7_8,4); */ /* //7.8_b str_pro str_test={2,3,4,5}; pro_7_8_b(str_test,4); */ /* // 7.9 cout<<"Enter class size:"; int class_size; cin>>class_size; while(cin.get()!='\n') continue; student* ptr_stu = new student[class_size]; int entered=getinfo(ptr_stu,class_size); for(int i=0;i<entered;i++) { display1(ptr_stu[i]); display2(&ptr_stu[i]); } display3(ptr_stu,entered); delete [] ptr_stu; cout<<"Done\n"; */ /* //7.10_a double q = calculate(2.3,10.2,add); cout<<q<<endl; */ /* //7.10_b double (*pf[3])(double ,double )={add,mul,sub}; double x,y,q; while(cin>>x>>y) { for(int i=0;i<3;i++) { q = calculate(x,y,pf[i]); cout<<q<<endl; } } */ return 0; } /* //7.1 double program_7_1(double x,double y) { return 2.0*x*y/(x+y); } */ /* //7.2 int pro_7_2_set_arr(double arr[],int size) { int true_size=0; for(int i=0;i<size;i++) { cout<<"Please input the score of arr["<<i<<"](input dismatch data to quit):"; if(cin>>arr[i]) true_size++; else break; } return true_size;//将数组的真实长度返回以便下面的函数显示和求平均值。 } void pro_7_2_show_arr(double arr[],int size) { for(int j=0;j<size;j++) { cout<<arr[j]<<","; } } double pro_7_2_average_arr(double arr[],int size) { double sum=0; for(int k=0;k<size;k++) { sum+=arr[k]; } return sum/size; } */ /* //7.3 void pro_7_3_a(box stru) { cout<<stru.maker<<"\t"<<stru.length<<"\t"<<stru.height<<"\t"<<stru.volume<<"\t"<<stru.width<<endl; } void pro_7_3_b(box* stru) { stru->volume=stru->height*stru->length*stru->width; cout<<"box volume:"<<stru->volume<<endl; } */ /* //7.4 long double probability(unsigned t_numbers,unsigned t_picks,unsigned s_numbers,unsigned s_picks) { long double result = 1.0; long double tn,sn; unsigned tp,sp; for(tn=t_numbers,tp=t_picks;tp>0;tn--,tp--) result=result*tn/tp; for(sn=s_numbers,sp=s_picks;sp>0;sn--,sp--) result=result*sn/sp; return result; } */ /* //7.5 实现阶乘 long double factorial(int n) { if(n>0) { return n*factorial(n-1); } else if(n==0) return 1; else cout<<"Bad input data."; } */ /* //7.6 int pro_7_6_Fill_array(double arr[],int size) { int true_size=0; for(int i=0;i<size;i++) { cout<<"Please input double type data to arr["<<i<<"]:"; if(cin>>arr[i]) true_size++; else break; } return true_size; } void pro_7_6_Show_array(double arr[],int size) { for(int j=0;j<size;j++) cout<<arr[j]<<"\t"; cout<<endl; } void pro_7_6_Reverse_array(double arr[],int size) { double temp=0; for(int begin=1,end=size-2;end>begin;end--,begin++) { temp=arr[begin]; arr[begin]=arr[end]; arr[end]=temp; } } */ /* //7.7 double* pro_7_7_fill_array(double *arr,int limit) { double temp; int i; for(i=0;i<limit;i++) { cout<<"Enter value #"<<(i+1)<<":"; cin>>temp; if(!cin) { cin.clear(); while(cin.get()!='\n') continue; cout<<"Bad input,input process terminated.\n"; break; } else if(temp<0) break; *(arr+i)=temp; } return arr+i; } void pro_7_7_show_array(const double* ps_beg,const double* ps_end) { for(;ps_beg<ps_end;ps_beg++)//不能取等号,ps_end指向数组末端下一个空间。 cout<<*ps_beg<<"\t"; } void pro_7_7_revalue(double r,double* ps_beg,double* ps_end) { for(;ps_beg<ps_end;ps_beg++) *ps_beg*=r; } */ /* //7.8_a void pro_7_8_a(double arr[],int size) { int total=0; for(int i=0;i<size;i++) { cout<<"Enter "<<season[i]<<" expenses:"; cin>>arr[i]; total+=arr[i]; } for(int j=0;j<size;j++) { cout<<season[j]<<": $"<<arr[j]<<endl; } } */ /*//7.8_b void pro_7_8_b(str_pro xx,int size) { int total=0; for(int i=0;i<size;i++) { cout<<"Enter "<<season[i]<<" expenses:"; cin>>xx.str_dou[i]; total+=xx.str_dou[i]; } for(int j=0;j<size;j++) { cout<<season[j]<<": $"<<xx.str_dou[j]<<endl; } cout<<total<<endl; } */ /* // 7.9 分别使用传值传递,传址和指向数组的指针操作结构体。 int getinfo(student pa[],int n) { int count; for(count=0;count<n;count++) { cout<<"Enter fullname:"; cin.getline(pa[count].fullname,SLEN); cout<<"Enter hobby:"; cin.getline(pa[count].hobby,SLEN); cout<<"Enter opplevel:"; cin>>pa[count].ooplevel; cin.get(); } return count; } void display1(student st) { cout<<"fullname: "<<st.fullname<<endl; cout<<"hobby: "<<st.hobby<<endl; cout<<"ooplevel: "<<st.ooplevel<<endl; } void display2(const student* ps) { cout<<"fullname: "<<ps->fullname<<endl; cout<<"hobby: "<<ps->hobby<<endl; cout<<"ooplevel: "<<ps->ooplevel<<endl; } void display3(const student pa[],int n) { for(int i=0;i<n;i++) { cout<<"fullname: "<<pa[i].fullname<<endl; cout<<"hobby: "<<pa[i].hobby<<endl; cout<<"ooplevel: "<<pa[i].ooplevel<<endl; } } */ /*//7.10_a double add(double x,double 9ded y) { return x+y; } double calculate(double d1,double d2,double (*pm)(double d3,double d4)) { return (*pm)(d1,d2); } */ /* //7.10_b double calculate(double d1,double d2,double (*pm)(double d3,double d4)) { return (*pm)(d1,d2); } double add(double x,double y) { return x+y; } double mul(double x,double y) { return x*y; } double sub(double x,double y) { return x-y; } */
相关文章推荐
- C++ Primer Plus第六版 第七章 编程练习答案
- C++ Primer Plus 第六版 学习笔记 第七章 编程练习答案
- 【学习C++】C++ Primer Plus (第六版)第七章编程练习6-10
- C++ PRIMER PLUS (第六版) 中文版 第七章编程练习答案
- C Primer Plus (第六版)中文版 第七章 编程练习答案
- C ++ Primer Plus 第六版 第七章编程练习答案
- C++ Primer Plus第六版编程练习10.4解答
- c++ primer plus 第六版第二章编程练习答案
- C++ Primer Plus第六版 第五章 编程练习答案
- C++ Primer Plus第六版编程练习6.7解答
- C++ Primer Plus第六版编程练习10.5解答
- 《c primer plus》编程练习回顾-第七章
- C++ Primer Plus第六版编程练习10.6解答
- C++ Primer Plus第六版编程练习8.2解答
- C++ primer plus(sixth edition) 编程练习答案(answers for programing exercises)第七章(chapter 7) 6-10
- C++ Primer Plus第六版编程练习6.9解答
- C++ Primer Plus第六版编程练习10.3解答
- C++ Primer Plus第六版 第三章 编程练习答案
- C++ Primer Plus 第五版 第七章 编程练习 5 6
- 关于c++primerplus第七章编程练习第九题的解答