黑马程序员技术交流社区

标题: 【在线等回答】问一个简单的问题 [打印本页]

作者: liuelxiwd    时间: 2013-5-30 09:18
标题: 【在线等回答】问一个简单的问题
本帖最后由 liuelxiwd 于 2013-5-30 22:50 编辑



我想用一个二维数组既保存姓名又保存成绩,可以这样定义 String [][] arr = new String[5][4];共5行,保存5个人的信息,每一列的第一列为姓名,其余为成绩,请问关于接收键盘输入这个该怎么写,应该是Scanner和for循环,求助~~~~~~~~~~~~~

作者: SOAR    时间: 2013-5-30 09:46
for(int i=0;i<5;i++){
   for(int j=0;j<4;j++){
       //输入成绩 依次存在 arr[i][j]中
   }
}
作者: 胡浩    时间: 2013-5-30 10:24
  1. import java.util.*;
  2. public class 二维数组 {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 Scanner input=new Scanner(System.in);
  8.                 String [] [] arr=new String [5][4];
  9.                 for(int i=0;i<5;i++){
  10.                        
  11.                         System.out.println("请输入第"+(i+1)+"个人的姓名");
  12.                        
  13.                        
  14.        
  15.                         arr[i][0]=input.next();//姓名保存在第一列,所以横坐标都为0
  16.                         for(int j=1;j<4;j++){
  17.                                 System.out.println("请依次输入第"+(i+1)+"个人的成绩");
  18.                                 arr[i][j]=input.next();
  19.                         }
  20.                 }
  21.                 for(int i=0;i<5;i++){
  22.                         for(int j=0;j<4;j++){
  23.                                 System.out.println(arr[i][j]);
  24.                         }
  25.                 }
  26.         }

  27. }
复制代码
楼主,这样可以啦

作者: 穆爱明    时间: 2013-5-30 11:00
  1. package com.test;

  2. import java.util.Scanner;//别忘了导包

  3. public class Test {

  4.         public static void main(String[] args) {
  5.                 /**
  6.                  * 存储数据
  7.                  */
  8.                 String[][] arr = new String[5][4];// 定义一个二维数组
  9.                 Scanner input = new Scanner(System.in);// 声明接收器
  10.                 for (int i = 0; i < arr.length; i++) {
  11.                         System.out.print("请输入第" + (i + 1) + "位的姓名和成绩:");// 提示用户输入成绩
  12.                         for (int j = 0; j < arr[i].length; j++) {// 利用循环接受每人的姓名和成绩
  13.                                 arr[i][j] = input.next();// 存储用户数据

  14.                         }
  15.                 }
  16.                 /**
  17.                  * 显示数据
  18.                  */
  19.                 for (int i = 0; i < arr.length; i++) {
  20.                         for (int j = 0; j < arr[i].length; j++) {
  21.                                 System.out.print(arr[i][j]+"\t");
  22.                         }
  23.                         System.out.println();//换行
  24.                 }

  25.         }
  26. }
  27. //控制台接收数据的时候光标要手动移到末尾!
复制代码

作者: liuelxiwd    时间: 2013-5-30 22:51
胡浩 发表于 2013-5-30 10:24
楼主,这样可以啦

谢谢!!!!
作者: liuelxiwd    时间: 2013-5-30 22:51
穆爱明 发表于 2013-5-30 11:00

谢谢!!!
作者: 刘正祥    时间: 2013-5-30 23:34
思路:用HashMap的键值对更清晰一些,姓名是键,成绩是值,一次输入姓名和成绩,中间用个符号隔开,然后用字符串分割的方法将用符号隔开的两个分别,存入Map对象中!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2