输出输出练习做错的题目
之前自己的解答:
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 }
主要为了自己学习