码迷,mamicode.com
首页 > 其他好文 > 详细

考试座位号

时间:2019-02-07 13:38:49      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:alt   out   测试结果   ati   实现   main   结构体   class   存储   

题目:

技术图片

 

思路:用一个二维数组存储输入的学号和座位号。

 

知识点for me:

1、不要在程序中混合使用nextInt(),next(),nextLine()。如果要使用nextLine()的话就全部使用nextLine()整行读入后,再进行处理。最开始我先用了nextInt()又用了nextLine(),发现nextLine()比我希望的少读了一行,可能是把第一行的换行符当作第一行了?

2、以空格分隔字符串的方法:String [] arr2 = str.split(" "); 

     但是如果待分隔的字符串像这样“a  b c   d“包含制表符、单个空格、多个空格时,可以这么做:String [] arr = str.split("\\s+");  String的split方法支持正则表达式,而正则表达式\s表示匹配任何空白字符,+表示匹配一次或多次。

 

上代码:

import java.io.*;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int sum=Integer.parseInt(sc.nextLine());
        String [][]arr=new String[sum][3];    
        String s;
        int i,j;
        for(i=0;i<sum;i++)
        {
            s=sc.nextLine();
            arr[i]=s.split(" ");
        }
        String get=sc.nextLine();
        int g=Integer.parseInt(get.trim());
        String a=sc.nextLine();
        String arr2[]=new String[g];
        arr2=a.split(" ");
        for(i=0;i<g;i++)
        {
            for(j=0;j<sum;j++)
            {
                if(arr[j][1].equals(String.valueOf(arr2[i])))
                {
                    System.out.println(arr[j][0]+" "+arr[j][2]);
                    break;
                }
            }
        }
    }
}

但是,测试结果竟然是部分正确。

技术图片

看样子代码还得优化,看了看人家做的很多都是用的C语言的结构体,Java没有结构体,或许可以用类来实现吧?这题不太想做了,以后有空再来管它吧。

考试座位号

标签:alt   out   测试结果   ati   实现   main   结构体   class   存储   

原文地址:https://www.cnblogs.com/littleLittleTiger/p/10354700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!