讀C++ primer 的一些練習

練習1.17 :編寫程序, 要求用戶輸入一組數. 輸出信息說明其中有多少個負數.ios

下面的代碼並不完美, 由於只能輸入20個之內的數, 等之後找到解決辦法再修改吧.git

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 7 {
 8     int array[20] = {0};
 9     int n;
10     cout << "請輸入數字的個數: " << endl;
11     cin >> n;
12     cout << "請輸入這些數字: " << endl;
13     for (int i = 0; i < n; ++i)
14     {
15         cin >> array[i];
16     }
17 
18     int sum = 0;
19 
20     for (int i = 0; i < n; ++i)
21     {
22         if(array[i] < 0)
23             sum++;
24     }
25 
26     cout << "the num of negitive is  " << sum << endl;
27     return 0;
28 }

 這裏還有一個方法,也有些不完美:spa

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 
 6 int main()
 7 {
 8 
 9     int sum = 0, value;
10 
11     while(cin >> value) //只有輸入值不是int 類型值時, 循環纔會結束
12     {                   //這就須要在你輸入完一組數後,再輸入一個"非法"的數
13         if(value < 0)   //以結束循環
14             sum++;
15     }
16 
17     cout << sum << endl;
18     return 0;
19 }

 練習1.19: 提示用戶輸入兩個數, 並將這兩個數範圍的每一個數寫到標準輸出, 每一行的輸出不超過10 個數.code

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6 
 7     int v1, v2;
 8     cout << "please enter two numbers: " << endl;
 9     cin >> v1 >> v2;
10 
11     int lower, upper;
12     if (v1 <= v2)
13     {
14         lower = v1;
15         upper = v2;
16     }
17     else
18     {
19         lower = v2;
20         upper = v1;
21     }
22 
23     for(int i = lower, count = 1; i <= upper; ++i, ++count)
24     {
25 
26         if(count % 10 == 0) 
27         {
28             cout << i << endl;  //每計夠10個數就換行一次.
29 
30         }
31         else
32         {
33             cout << i << " "; 
34 
35         }
36 
37 
38     }
39 
40 
41     return 0;
42 }

還能夠經過重置計數器的方法實現, 但感受沒有這個簡便:blog

 1     int counter = 0;
 2     for(int i = lower; i <= upper; ++i)//只有輸入值不是int 類型值時, 循環纔會結束
 3     {
 4 
 5         if(counter < 10)               //
 6         {
 7             cout << i << " ";
 8 
 9         }
10         else
11         {
12             cout << i << endl;
13             counter = 0;
14         }
15     }

 練習1.23 編寫程序, 讀入幾個具備相同ISBN的交易, 輸出全部讀入交易的和.ci

 1 #include <iostream>
 2 #include "Sales_item.h"
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     Sales_item book1, book2;
 9 
10     if (cin >> book1)  //cin操做符返回的是bool值
11     {
12         while (cin >> book2)
13         {
14             if (book1.same_isbn(book2))
15                 book1 += book2;
16             else
17             {
18                 cout << "different ISBN" << endl;
19 
20 //              return -1;  //若是執行到這一句, 程序就會結束.
21             }
22 
23             cout << book1 << endl;
24         }
25     }
26 
27 
28     else
29     {
30         cerr << "No data ?" << endl;
31 
32         return -1;
33     }
34 
35     return 0;
36 }
相關文章
相關標籤/搜索