9.14 算法复习以及自定义输入输出
2019-10-23 本文已影响0人
HamletSunS
CPP
#include <iostream>
using namespace std;
int main(){
return 0;
}
输入n组数据,输出每一行的数字之和
思路:
1.以‘\n’为界限,判断输出时机
2.可以考虑利用cin.get() cin.peek()
#include <iostream>
using namespace std;
int main(){
int sum=0;
int temp;
while(cin>>temp){
if(cin.peek()=='\n'){
sum+=temp;
cout<<sum<<endl;
sum=0;
}
else{
sum+=temp;
}
}
return 0;
}
对输入字符串数组进行排序后输出
输入:第一行是n,第二行是字符串数组,以空格分隔
输出:按字典序排序的字符串
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main(){
int n;
cin>>n;
vector<string> rec(n);
for(int i=0;i<n;i++)
cin>>rec[i];
sort(rec.begin(),rec.end());
for(int i=0;i<n;i++){
if(i==n-1)
cout<<rec[i]<<endl;
else
cout<<rec[i]<<" ";
}
return 0;
}
字符串排序3 重要!!
输入:多行字符串,每个字符以‘,’为分割符
输出:排序号的字符串
思路:
以‘,’为分隔符,而cin字符串的读取只能读全部的(默认以空格为分隔符),所以在此基础上进行改进
改进策略为:
用str保存整行字符串,temp去记录被‘,’分隔开的元素。值得注意的是,最后一个元素没有‘,’,需要特别处理
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main(){
vector<string> vec;
string str,temp;
while(cin>>str){
temp="";
int n=str.size();
for(int i=0;i<n;i++){
if(str[i]==','){
vec.push_back(temp);
temp="";
}
else{
temp+=str[i];
}
}
vec.push_back(temp);//重要!!!
//装入最后一个元素,因为最后一个元素没有“,”,所以需要直接装入
sort(vec.begin(),vec.end());
for(int i=0;i<vec.size();i++){
if(i==vec.size()-1)
cout<<vec[i]<<endl;
else
cout<<vec[i]<<",";
}
vec.clear();
}
return 0;
}
输入t组数据,每组2个数,求2数之和
第一行是数组个数
Java
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sca=new Scanner(System.in);
if(sca.hasNextInt()){
int t=sca.nextInt();
while(t-->0){
if(sca.hasNextInt()){
int a=sca.nextInt();
int b=sca.nextInt();
System.out.println(a+b);
}
}
}
}
}
输入字符串数组,输出排序后的字符串数组
第一行是数组元素个数
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.next();
}
Arrays.sort(arr);
for (int i = 0; i < n; i++) {
if (i == n - 1) {
System.out.print(arr[i]);
continue;
}
System.out.print(arr[i] + " ");
}
}
}
}
字符串排序2
输入是每行一个字符串数组,有不确定的行数
输出排序好的字符串数组
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] arr = line.split(" ");
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arr[i]);
continue;
}
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
}