输出输出练习做错的题目

之前自己的解答:

 1 #include "iostream"
 2 using namespace std;
 3 int main()
 4 {
 5     int a,b;
 6     int n=0;
 7       int sum=0;
 8    while(cin>>n)
 9    {
10    
11                 sum+=n;
12      }
13       cout<<sum<<endl;
14      
15 }

很显然,这个是处理不了换行的情况的。

while(cin>>a),如果a是整型变量,输入字母或者输入ctrl+z,表示输入结束。

更加简洁的写法,有点不理解为啥前面要加入cin>>a?

 1 #include "iostream"
 2 #include "string"
 3 #include "algorithm"
 4 #include "vector"
 5 #include "numeric"
 6 using namespace std;
 7 int main()
 8 {
 9     string input;
10     string result;
11 //     while(getline(cin, input))
12 //     {
13 //         cout<<"input is:"<<input;
14 //         getline(input,result,' ');
15 //     }
16       int a=0;
17     vector<int> str;
18     while(cin>>a)
19     {
20         
21    24         str.push_back(a);
25     if(cin.get()=='\n')
26     {
27        // cin>>a;
28        // sum+=a;
29        int sum= accumulate(str.begin(),str.end(),0);
30          cout<<sum<<endl;
31         sum=0;
32         str.clear();
33        // accumutelate()
34     }
35     
36     }
37     return 0;
38 }

 前面写错了,更简单的写法是这样的:

 1 #include "stdafx.h"
 2 
 3 #include "iostream"
 4 #include "string"
 5 #include "algorithm"
 6 #include "vector"
 7 using namespace std;
 8 int main()
 9 {
10     string input;
11     string result;
12     //     while(getline(cin, input))
13     //     {
14     //         cout<<"input is:"<<input;
15     //         getline(input,result,' ');
16     //     }
17     int a=0;
18     vector<int> str;
19     int sum=0;
20     while(cin>>a)
21     {
22 
23         sum+=a;
24         cout<<"输入a是:"<<a<<endl;
25         if(cin.get()=='\n')
26         {
27                 cout<<sum<<endl;
28                  sum=0;
29     
30         }
31     
32     }
33     return 0;
34 }

 

posted @ 2022-02-15 19:26  技术笔记记录  阅读(36)  评论(0)    收藏  举报