0、在线oj输入输出联系
智力题
链接11
链接222
多组输入:求和,不知道一组有多少个数字
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
int a,sum = 0;
while(cin>>a){
sum +=a;
if(cin.get()=='\n'){
cout<<sum<<endl;
sum = 0;
}
}
return 0;
}
10/11字符串排序
多个测试用例,每个测试用例一行。
每行通过,隔开,有n个字符,n<100
输出描述:
对于每组用例输出一行排序后的字符串,用’,'隔开,无结尾空格
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
int main(){
string str;
while(cin>>str){
if(cin.get()=='\n'){
vector<string>res;
string str1="";
for(auto &s:str){
if(s!=','){
str1 += s;
}
else{
res.push_back(str1);
str1 = "";
}
}
res.push_back(str1);
sort(res.begin(),res.end());
string ans = "";
for(int i =0; i < res.size()-1;i++){
ans += res[i];
ans +=',';
}
ans += res[res.size()-1];
cout<<ans<<endl;
res.clear();
}
}
return 0;
}
1、一个获取字符串
获取一个变长数组:
vector<int> nums;
int num;
do {
cin >> num;
nums.push_back(num);
} while (getchar() != '\n');
从键盘输入一行字符串:
string ver1;
while (getline(cin, ver1));
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
int main() {
string ver1;
string ver2;
while (getline(cin, ver1));
getchar();
while (getline(cin, ver2));
getchar();
int n1 = ver1.size();
int n2 = ver2.size();
vector<string>v1;
vector<string>v2;
string s1 = "";
for (int i = 0; i < n1; i++) {
if (ver1[i] != '0' && ver1[i] != '.') {
s1 += ver1[i];
}
if (ver1[i] == '.') {
v1.push_back(s1);
s1 = "";
}
if (ver1[i] == '0' && s1 != "") {
s1 += '0';
}
}
v1.push_back(s1);
string s2 = "";
for (int i = 0; i < n2; i++) {
if (ver2[i] != '0' && ver2[i] != '.') {
s2 += ver2[i];
}
if (ver2[i] == '.') {
v2.push_back(s2);
s2 = "";
}
if (ver2[i] == '0' && s2 != "") {
s2 += '0';
}
}
v2.push_back(s2);
//if (v2 == v1) cout << 0 << endl;
//else if (v1 > v2) cout << 1 << endl;
//else cout << -1 << endl;
for (int i = 0; i < v1.size(); i++) {
if (v1[i] > v2[i]) {
cout << 1 << endl;
break;
}
if (v1[i] < v2[i]) {
cout << -1 << endl;
break;
}
}
cout << 0 << endl;
return 0;
}
/*
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
vector<vector<int>> solution(vector<int> & nums) {
int n = nums.size();
sort(nums.begin(), nums.end());
vector<vector<int>>res;
for (int k = n - 1; k >= 2; k--) {
int c = nums[k];
int i = 0, j = k - 1;
while (i < j) {
if (nums[i] + nums[j] + c == 0) {
vector<int>tem;
tem.push_back(nums[i]);
tem.push_back(nums[j]);
tem.push_back(c);
res.push_back(tem);
break;
}
else if (nums[i] + nums[j] + c < 0) {
i++;
}
else {
j--;
}
}
}
return res;
}
int main() {
vector<int> nums;
int num;
do {
cin >> num;
nums.push_back(num);
} while (getchar() != '\n');
vector<vector<int>> haha = solution(nums);
for (auto &tem : haha) {
cout << tem[0] << " " << tem[1] << " " << tem[2] << endl;
}
return 0;
}*/
9/11字符串排序2
多个测试用例,每个测试用例一行。
每行通过空格隔开,有n个字符,n<100
输出描述:
对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
int main(){
string str;
vector<string>res;
while(cin>>str){
res.push_back(str);
if(cin.get()=='\n'){
sort(res.begin(),res.end());
string ans;
for(int i = 0; i < res.size()-1;i++){
ans +=res[i];
ans+=" ";
}
ans+=res[res.size()-1];
cout<<ans<<endl;
res.resize(0); // 这里需要重置一下
}
}
return 0;
}
8/11字符串排序
输入有两行,第一行n
第二行是n个空格隔开的字符串
输出描述:
输出一行排序后的字符串,空格隔开,无结尾空格
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
int main(){
int n;
cin>>n;
string str;
vector<string>res;
while(cin>>str){
res.push_back(str);
if(cin.get()=='\n'){
break;
}
}
sort(res.begin(),res.end());
string ans;
for (int i = 0; i < res.size() - 1; ++i) {
ans += res[i];
ans += " ";
}
ans += res[res.size() - 1];
cout << ans << endl;
return 0;
}
7/11a+b
输入数据有多组, 每行表示一组输入数据。
每行不定有n个整数,空格隔开。(1 <= n <= 100)。
输出描述:
每组数据输出求和的结果
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
int a,sum = 0;
while(cin>>a){
sum +=a;
if(cin.get()=='\n'){
cout<<sum<<endl;
sum = 0;
}
}
return 0;
}
6/11 a+b
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
#include<iostream>
using namespace std;
int main(){
int n;
while((cin>>n)){
int sum = 0;
while(n--){
int num;
cin>>num;
sum += num;
}
cout<<sum<<endl;
}
return 0;
}