20210907 在线编程常见输入输出练习

本文介绍了Java编程中处理各种输入输出场景的实例,包括多组整数相加、字符串排序等。涵盖了不同输入格式的处理,如固定组数、指定结束标志、不定数量整数等,并提供了相应的代码实现。同时,讲解了如何对输入的字符串进行排序输出,涉及多种测试用例。
摘要由CSDN通过智能技术生成

20210907在线编程常见输入输出练习

编辑时间:2021/09/07

读完本节:大概花费15分钟,共2102词

文章目录

例1. a+b 输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。

1. 输入描述:

​ 输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。

2. 输出描述:

​ 输出a+b的结果

3. 测试用例

​ 输入

1 5
10 20

​ 输出

6
30
4. 代码
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int a = sc.nextInt();
            int b = sc.nextInt();
            System.out.println(a + b);
        }
    }
}

例2. a+b 输入第一行包括一个数据组数t(1 <= t <= 100)接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)

1. 输入描述:

​ 输入第一行包括一个数据组数t(1 <= t <= 100)

​ 接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)

2. 输出描述:

​ 输出a+b的结果

3. 测试用例

​ 输入

2
1 5
10 20

​ 输出

6
30
4. 代码
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int groupNum = sc.nextInt();
        while(groupNum > 0){
            long a = sc.nextLong();
            long b = sc.nextLong();
            System.out.println(a + b);
            groupNum--;
        }
    }
}

例3. a+b 输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入

1. 输入描述:

​ 输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入

2. 输出描述:

​ 输出a+b的结果

3. 测试用例

​ 输入

1 5
10 20
0 0

​ 输出

6
30
4. 代码
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            long a = sc.nextLong();
            long b = sc.nextLong();
            if(a == 0l && b == 0l)    break;
            System.out.println(a + b);
        }
    }
}

例4. a+b 每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入,接下来n个正整数,即需要求和的每个正整数。

1. 输入描述:

​ 输入数据包括多组。
​ 每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
​ 接下来n个正整数,即需要求和的每个正整数。

2. 输出描述:

​ 输出a+b的结果

3. 测试用例

​ 输入

4 1 2 3 4
5 1 2 3 4 5
0

​ 输出

10
15
4. 代码
import java.io.*;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            String[] str = line.split(" ");
            int n = Integer.parseInt(str[0]);
            if (n == 0) {
                break;
            }
            int sum = 0;
            // 如果不用str.length,而用n,结束条件多个=
            // 因为str.length = n+1,第一个正数个数和后面n个正整数
            for (int i = 1; i <= n; i++) {
                sum += Integer.parseInt(str[i]);
            }
            System.out.println(sum);
        }
        br.close();
    }
}

例5. a+b 输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。接下来t行, 每行一组数据。接下来n个正整数, 即需要求和的每个正整数。

1. 输入描述:

​ 输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
​ 接下来t行, 每行一组数据。
​ 每行的第一个整数为整数的个数n(1 <= n <= 100)。
​ 接下来n个正整数, 即需要求和的每个正整数。

2. 输出描述:

​ 输出a+b的结果

3. 测试用例

​ 输入

2
4 1 2 3 4
5 1 2 3 4 5

​ 输出

10
15
4. 代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int groupNum = Integer.parseInt(br.readLine());
        while(groupNum > 0){
            String[] str = br.readLine().split(" ");
            int n = Integer.parseInt(str[0]);
            int sum = 0;
            for (int i = 1; i <= n; i++) {
                sum += Integer.parseInt(str[i]);
            }
            System.out.println(sum);
            groupNum--;
        }
        br.close();
    }
}

例6. a+b 输入数据有多组, 每行表示一组输入数据。每行的第一个整数为整数的个数n(1 <= n <= 100)。接下来n个正整数, 即需要求和的每个正整数。

1. 输入描述:

​ 输入数据有多组, 每行表示一组输入数据。
​ 每行的第一个整数为整数的个数n(1 <= n <= 100)。
​ 接下来n个正整数, 即需要求和的每个正整数。

2. 输出描述:

​ 输出a+b的结果

3. 测试用例

​ 输入

4 1 2 3 4
5 1 2 3 4 5

​ 输出

10
15
4. 代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while((line=br.readLine()) != null){
            String[] str = line.split(" ");
            int range = Integer.parseInt(str[0]);
            int sum = 0;
            for(int i = 1; i <= range; i++){
                sum += Integer.parseInt(str[i]);
            }
            System.out.println(sum);
        }
        br.close();
    }
}

例7. 输入数据有多组, 每行表示一组输入数据。每行不定有n个整数,空格隔开。(1 <= n <= 100)。

1. 输入描述:

​ 输入数据有多组, 每行表示一组输入数据。
​ 每行不定有n个整数,空格隔开。(1 <= n <= 100)。

2. 输出描述:

​ 输出a+b的结果

3. 测试用例

​ 输入

1 2 3
4 5
0 0 0 0 0

​ 输出

6
9
0
4. 代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while((line = br.readLine()) != null){
            String[] str = line.split(" ");
            int sum = 0;
            for(int i = str.length - 1; i >= 0; --i){
                sum += Integer.parseInt(str[i]);
            }
            System.out.println(sum);
        }
        br.close();
    }
}

例8. 对输入的字符串进行排序后输出

1. 输入描述:

​ 输入有两行,第一行n
​ 第二行是n个空格隔开的字符串

2. 输出描述:

​ 输出一行排序后的字符串,空格隔开,无结尾空格

3. 测试用例

​ 输入

5
c d a bb e

​ 输出

a bb c d e
4. 代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line = br.readLine();
        line = br.readLine();
        String[] arr = line.split(" ");
        Arrays.sort(arr);
        for(int i = 0; i < arr.length - 1; ++i){
            System.out.print(arr[i] + " ");
        }
        System.out.print(arr[arr.length - 1]);
        br.close();
    }
}

例9. 对输入的字符串进行排序后输.出多个测试用例,每个测试用例一行。每行通过空格隔开,有n个字符,n<100

1. 输入描述:

​ 多个测试用例,每个测试用例一行。
​ 每行通过空格隔开,有n个字符,n<100

2. 输出描述:

​ 对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开

3. 测试用例

​ 输入

a c bb
f dddd
nowcoder

​ 输出

a bb c
dddd f
nowcoder
4. 代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while((line = br.readLine()) != null){
            String[] arr = line.split(" ");
            Arrays.sort(arr);
            for(int i = 0; i < arr.length - 1; i++){
                System.out.print(arr[i] + " ");
            }
            System.out.print(arr[arr.length - 1]);
            System.out.println();
        }
        br.close();
    }
}

例10. 对输入的字符串进行排序后输.出多个测试用例,每个测试用例一行。每行通过,隔开,有n个字符,n<100

1. 输入描述:

​ 多个测试用例,每个测试用例一行。
​ 每行通过,隔开,有n个字符,n<100

2. 输出描述:

​ 对于每组测试用例,输出一行排序过的字符串,每个字符串通过,隔开

3. 测试用例

​ 输入

a,c,bb
f,dddd
nowcoder

​ 输出

a,bb,c
dddd,f
nowcoder
4. 代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while((line = br.readLine()) != null){
            String[] arr = line.split(",");
            Arrays.sort(arr);
            for(int i = 0; i < arr.length - 1; i++){
                System.out.print(arr[i] + ",");
            }
            System.out.print(arr[arr.length - 1]);
            System.out.println();
        }
        br.close();
    }
}

例11. 返回通过率0

1. 输入描述:

​ 输入有多组测试用例,每组空格隔开两个整数

2. 输出描述:

​ 对于每组数据输出一行两个整数的和

3. 测试用例

​ 输入

123
100 100
10000000000000 1

​ 输出

123
200
10000000000001
4. 代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while((line=br.readLine()) != null){
            String[] str = line.split(" ");
            long sum = 0;
            for(String i:str){
                sum += Long.parseLong(i);
            }
            System.out.println(sum);
        } 
    }
}

提交不通过,或者通过率为零,这不是系统的错,可能是因为

1.对题目理解错了,代码只过了样例或你自己的数据

2.代码逻辑有问题,代码只过了样例或你自己的数据

总之就是你的代码只是过了样例和自测数据,后台的测试数据你根本不可见,要多自己思考。

无限进步
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值