C++程序设计原理与实践 第五章部分答案

 1 #include "../../st.h"
 2
 3 int main()
 4 {
 5     vector<double> nums;
 6     double t;
 7     int n;
 8     cout<<"input how many nums: ";
 9     cin>>n;
10     cin>>t;
11     nums.push_back(t);
12     int i=0;
13     while(cin>>t)
14     {
15         if(i<n-1&&nums[i]!=t)
16         {
17             nums.push_back(t);
18             i++;
19         }
20     }
21     double sum=0;
22     for(i=0;i<nums.size();i++)
23     {
24         cout<<nums[i]<<"  ";
25         sum+=nums[i];
26     }
27     cout<<endl<<"the count is "<<sum<<endl;
28     keep_window_open();
29     return 0;
30 }

第10题

 1 #include "../../st.h"
 2
 3 //maybe can be better
 4 //利用  narrow_cast<>
 5 //这个版本没有
 6
 7 int main()
 8 try
 9 {
10     int x1=0,x2=1,x=x1+x2;
11     bool b=1;
12     cout<<x1<<endl<<x2<<endl<<x<<endl;
13     while(x>=0)
14     {
15         cout<<x<<endl;
16         x=x1+x2;
17
18         x1=x2;
19         x2=x;
20     }
21     keep_window_open();
22     return 0;
23 }
24
25 catch(runtime_error)
26 {
27     cout<<"it is over."<<endl;
28     keep_window_open();
29     return 1;
30 }

第11题

 1 #include "../../st.h"
 2
 3 //利用两个数组储存
 4
 5 int main()
 6 {
 7     int a=1224;         //设定初始数
 8     int b;                //我们猜测的数
 9     int n,m;
10     int i,j,t;
11     int aa[4];     //存原始数的每个数字
12     int bb[4];       //我们猜测的数的每个数字
13     for(i=3;i>=0;i--)
14     {
15         aa[i]=a%10;
16         a/=10;
17     }
18     while(1)
19     {
20         cin>>b;
21         n=m=0;
22         for(i=3;i>=0;i--)
23         {
24             bb[i]=b%10;
25             b/=10;
26         }
27
28         for(i=0;i<4;i++)
29             if(aa[i]==bb[i])
30                 n++;
31         if(n==4)
32         {
33             cout<<"4 gong"<<endl;
34             break;
35         }
36         for(i=0;i<4;i++)
37             for(j=0;j<3-i;j++)
38                 if(bb[j]>bb[j+1])
39                 {
40                     t=bb[j];
41                     bb[j]=bb[j+1];
42                     bb[j+1]=t;
43                 }
44         for(i=0;i<4;i++)
45         {
46             for(j=0;j<4;j++)
47                 if(aa[i]==bb[j]){
48                     m++;
49                     break;
50                 }
51         }
52         cout<<m<<endl;
53         m-=n;
54         cout<<n<<" gong,"<<m<<" mu"<<endl;
55     }
56     return 0;
57 }

第12题

 1 //为第六章习题8  但4个数字改为4个字母
 2 #include "../../st.h"
 3
 4 int main()
 5 {
 6     char a[4]={‘a‘,‘b‘,‘b‘,‘c‘};
 7     char b;
 8     int n,m;
 9     int i,j,t;
10     int aa[4],bb[4];
11     for(i=0;i<4;i++)
12         {
13             aa[i]=a[i];
14         }
15     while(1)
16     {
17
18         n=m=0;
19         for(i=0;i<4;i++)
20         {
21             cin>>b;
22             bb[i]=b;
23         }
24
25
26         for(i=0;i<4;i++)
27             if(aa[i]==bb[i])
28                 n++;
29         if(n==4)
30         {
31             cout<<"4 gong"<<endl;
32             break;
33         }
34         for(i=0;i<4;i++)
35             for(j=0;j<3-i;j++)
36                 if(bb[j]>bb[j+1])
37                 {
38                     t=bb[j];
39                     bb[j]=bb[j+1];
40                     bb[j+1]=t;
41                 }
42         for(i=0;i<4;i++)
43         {
44             for(j=0;j<4;j++)
45                 if(aa[i]==bb[j]){
46                     m++;
47                     break;
48                 }
49         }
50         m-=n;
51         cout<<n<<" gong,"<<m<<" mu"<<endl;
52     }
53
54     while(1);
55     return 0;
56 }

第12题改

这一章主要讲了异常,但其实并没太多的深入,可以到C++primer中深入

时间: 2024-10-16 12:00:53

C++程序设计原理与实践 第五章部分答案的相关文章

C++程序设计原理与实践 第二十三章部分答案

1 #include <iostream> 2 #include <vector> 3 #include <string> 4 #include <list> 5 #include<fstream> 6 #include <set> 7 #include<algorithm> 8 #include<stdexcept> 9 #include <map> 10 #include<boost/re

c++程序设计原理与实践 第四章部分答案

1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 int a=1,b=100; 7 int f=1; 8 char c=0; 9 10 while(f<=7 && (b-a)>=1) 11 { 12 cout<<"你的数小等于"<<(a+b)/2<<"吗?(y/n)"; 13 cin>>c; 14

C++程序设计原理与实践 第十七章部分答案

1 #include <iostream> 2 using namespace std; 3 4 void to_lower(char* s) 5 { 6 while(*s!='\0') 7 { 8 if(*s>='A'&&*s<='Z') 9 *s+=32; 10 s++; 11 } 12 } 13 14 char* strdup1(const char*s) 15 { 16 char *p=new char[]; 17 cout<<sizeof(s)

C++程序设计原理与实践 第十一章部分答案

1 #include "../../st.h" 2 3 int main() 4 try{ 5 string s1="a.txt"; 6 string s2="z.txt"; 7 ifstream ifs(s1.c_str()); 8 if(!ifs) 9 error("can not open input file",s1); 10 ofstream ofs(s2.c_str()); 11 if(!ofs) 12 error

C++程序设计原理与实践 第二十一章部分答案

1 #include <iostream> 2 #include <vector> 3 #include <string> 4 #include <list> 5 #include<fstream> 6 #include<algorithm> 7 #include<stdexcept> 8 using namespace std; 9 10 struct Item 11 { 12 string name; 13 int i

C++程序设计原理与实践 第二十七章部分答案

1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<assert.h> 4 5 6 struct List 7 { 8 struct Link*first; 9 struct Link*last; 10 }; 11 12 struct Link 13 { 14 struct Link*pre; 15 struct Link*suc; 16 }; 17 18 void init(struct List*lst) 19 {

C++程序设计原理与实践 第十八章部分答案

1 int strcmp1(const char* s1,const char*s2) 2 { 3 int i=0; 4 cout<<strlen(s1)<<endl; 5 while(*(s1+i)==*(s2+i)) 6 { 7 if(*(s1+i)=='\0') 8 return 0; 9 else 10 i++; 11 } 12 return *(s1+i)-*(s2+i); 13 //return((*(unsignedchar*)(s1+i)<*(unsigned

编码原则实例------c++程序设计原理与实践(进阶篇)

编码原则: 一般原则 预处理原则 命名和布局原则 类原则 函数和表达式原则 硬实时原则 关键系统原则 (硬实时原则.关键系统原则仅用于硬实时和关键系统程序设计) (严格原则都用一个大写字母R及其编号标识,而推荐原则都用小写字母r及其编号标识,对于前者程序员必须严格遵守,而后者则偶尔可以不遵守) 1.一般原则 R100:任何函数和类的代码规模都不应超过200行(不包括注释). 原因:长的函数和类会更复杂,因而难以理解和测试. r101:任何函数和类都应该能完全显示在一屏上,并完成单一的逻辑功能.

bitest(位集合)------c++程序设计原理与实践(进阶篇)

标准库模板类bitset是在<bitset>中定义的,它用于描述和处理二进制位集合.每个bitset的大小是固定的,在创建时指定: bitset<4> flags; bitset<128> dword_bits; bitset<12345> lots; 默认情况下,bitset被初始化为全0,但通常我们都会给它一个初始值,可以是一个无符号的整数或者"0"和"1"组成的字符串.例如: bitset<4> fl