Top >Java 練習問題集

5. 配列

以下、

import java.io.*;

public class Exercise
{
    public static void main( String[] args ) throws IOException
    {
        :
        :
    }
}

の記述は省略します

練習問題 5 - 1

次のプログラムを作成しなさい

  • 10 個の数値を入力する
  • 入力された各々の数値を 2 倍にして表示する

BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int     values[] = new int[10];

forint i = 0 ; i < 10 ; i++ )
    values[i] = Integer.parseInt( br.readLine() );

System.out.println();

forint i = 0 ; i < 10 ; i++ )
    System.out.println( values[i] * 2 );

2番目のfor文を次のようにしてもよい

forint n : values )
    System.out.println( n * 2 );

練習問題 5 - 2

次のプログラムを作成しなさい

  • 10 個の数値を入力する
  • 入力された順番と逆の順番で 10 個の数値を表示する

BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int     values[] = new int[10];

forint i = 0 ; i < 10 ; i++ )
    values[i] = Integer.parseInt( br.readLine() );

System.out.println();

forint i = 9 ; i >= 0 ; i-- )
    System.out.println( values[i] );

練習問題 5 - 3

次のプログラムを作成しなさい

  • 10 個の数値を入力する
  • 入力された数値を偶数と奇数に分類して表示する

BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int     values[] = new int[10];

forint i = 0 ; i < 10 ; i++ )
    values[i] = Integer.parseInt( br.readLine() );

System.out.print( "\n偶数:" );

forint n : values )
    if( ( n % 2 ) == 0 )
        System.out.print( n + " " );

System.out.print( "\n奇数:" );

forint n : values )
    if( ( n % 2 ) != 0 )
        System.out.print( n + " " );

練習問題 5 - 4

数値を繰り返して入力し、合計が 100 を超えた場合、または入力が 10 回行われた場合、入力を止め入力された数値をすべて表示するプログラムを作成しなさい


BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int     values[] = new int[10];
int     cnt, sum;

for( cnt = 0, sum = 0 ; cnt < 10 && sum <= 100 ; cnt++ )
{
    values[cnt] = Integer.parseInt( br.readLine() );
    sum += values[cnt];
}

forint i = 0 ; i < cnt ; i ++ )
    System.out.print( "\n" + values[i] );

以下は、while文を使用した例

BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int     values[] = new int[10];
int     cnt = 0, sum = 0;

while( cnt < 10 && sum <= 100 )
{
    values[cnt] = Integer.parseInt( br.readLine() );
    sum += values[cnt++];
}

forint i = 0 ; i < cnt ; i ++ )
    System.out.print( "\n" + values[i] );

練習問題 5 - 5

次のコードに追加し、入力された数値を 16 桁の2進数で表示するプログラムを完成させなさい


BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int value = Integer.parseInt( br.readLine() );

int binary[] = new int[16];

forint i = 15 ; i >= 0 ; i--, value /= 2 )
    binary[i] = value % 2;

forint i = 0 ; i < 16 ; i++ )
    System.out.print( binary[i] );

練習問題 5 - 6

次のコードに追加し、九九表を表示するプログラムを完成させなさい


BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int kuku[][] = new int[9][];

forint i = 0 ; i < 9 ; i++ )
{
    kuku[i] = new int[9];

    forint j = 0 ; j < 9 ; j++ )
        kuku[i][j] = ( i + 1 ) * ( j + 1 );
}

forint i = 0 ; i < 9 ; i++ )
{
    forint j = 0 ; j < 9 ; j++ )
        System.out.printf( " %2d", kuku[i][j] );

    System.out.println();
}

または、

BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int kuku[][] = new int[9][9];

forint i = 0 ; i < 9 ; i++ )
    forint j = 0 ; j < 9 ; j++ )
        kuku[i][j] = ( i + 1 ) * ( j + 1 );

forint i = 0 ; i < 9 ; i++ )
{
    forint j = 0 ; j < 9 ; j++ )
        System.out.printf( " %2d", kuku[i][j] );

    System.out.println();
}

練習問題 5 - 7

1 桁の数値( 1 ~ 9 に限定)を2つ入力し、その積を表示するプログラムを作成しなさいただし、九九の計算結果が入った配列を予め作成して利用すること(前問を参考に)


BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int kuku[][] = new int[9][9];

forint i = 0 ; i < 9 ; i++ )
    forint j = 0 ; j < 9 ; j++ )
        kuku[i][j] = ( i + 1 ) * ( j + 1 );

int p = Integer.parseInt( br.readLine() );
int q = Integer.parseInt( br.readLine() );

System.out.println( kuku[p-1][q-1] );

練習問題 5 - 8

整数を 10 回入力し、小さい順に並べ替えて表示するプログラムを作成しなさい


BufferedReader br = new BufferedReader(
                        new InputStreamReader( System.in ) );
int values[] = new int[10];

forint i = 0 ; i < 10 ; i++ )
    values[i] = Integer.parseInt( br.readLine() );

forint i = 0 ; i < 10 ; i++ )
{
    forint j = i + 1 ; j < 10 ; j++ )
    {
        if( values[i] > values[j] ){
            int t = values[i];
            values[i] = values[j];
            values[j] = t;
        }
    }
}

forint i = 0 ; i < 10 ; i++ )
    System.out.print( values[i] + " " );
PAPER BOWL
NEZEN