第8講 配列を理解しよう
第6話 成績一覧表の列合計・列最高点および列最低点の算出
入門
の改良例
class h{
  public static void main(String args[]){
      f();
  }
  public static void f(){
    int i,j,k,w,mx,mn;
    int[][] a=new int[30][7];
    for(i=0;i<3;i++){
      System.out.print (i + 1);
      System.out.println("学期成績一覧表");
      System.out.println("出席番号 国語 社会 数学 理科 英語  合計 最大値 最小値");
      for(j=0;j<10;j++){
        w=0;
        mx=-1;
        mn=200;
        for(k=0;k<6;k++){
          
          if(k==0){
            a[10*i+j][k]=j+1;
          }
          else{
            a[10*i+j][k]=(int)(Math.random()*101);
            if(mn>a[10*i+j][k])mn=a[10*i+j][k];
            if(mx<a[10*i+j][k])mx=a[10*i+j][k];
          }
          if(k==0 && j<9)System.out.print("  ");
          if(k==0 && j>=9)System.out.print(" ");
          System.out.print (" ");
          if(k>0 && a[10*i+j][k]<10)System.out.print(" ");
          if(k>0 && a[10*i+j][k]>=10 && a[10*i+j][k]<100)System.out.print(" ");
          System.out.print(a[10*i+j][k]);
          if(k==0)System.out.print(" ");
          System.out.print (" ");
          w+=a[10*i+j][k];
        }
        a[10*i+j][6]=w;
        System.out.print ("  ");
        if(w<100)System.out.print(" ");
        System.out.print (w);
        System.out.print ("  ");
        System.out.print (mx);
        if(mx<100)System.out.print(" ");
        if(mx==100)System.out.print(" ");
        if(mn<10)System.out.print(" ");
        System.out.print (mn);
        System.out.println();
      }
      System.out.print ("合計  ");
      for(j=1;j<7;j++){
        w=0;
        for(k=0;k<10;k++){
          w+=a[10*i+k][j];
        }
        System.out.print (" ");
        if(j==6)System.out.print(" ");
        System.out.print (w);
      }
      System.out.println();
      System.out.print ("最大値 ");
      for(j=1;j<7;j++){
        mx=-1;
        for(k=0;k<10;k++){
          if(mx<a[10*i+k][j])mx=a[10*i+k][j];
        }
        if(mx<100)System.out.print("  ");
        if(mx==100)System.out.print(" ");
        if(j==6)System.out.print("   ");
        System.out.print (mx);
      }
      System.out.println();
      System.out.print ("最小値 ");
      for(j=1;j<7;j++){
        mn=2000;
        for(k=0;k<10;k++){
          if(mn>a[10*i+k][j])mn=a[10*i+k][j];
        }
        if(mn<10)System.out.print("  ");
        if(mn>=10)System.out.print("  ");
        if(j==6)System.out.print(" ");
        System.out.print (mn);
      }
      System.out.println();
    }
  }
}
実行結果例
入門
文字の位置調整は試行錯誤でやりました。
本当に(;^_^A アセアセ・・・でした。

今回は2次元配列によって列合計等を算出しましたが、次は
int[][][] b=new int[3][10][7];
を用意して実現しましょう。



第5話へ 第7話へ

戻る

VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部