Top >C言語 練習問題集

6. 配列

練習問題 6 - 1

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

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

int     values[10];
int     i;

for( i = 0 ; i < 10 ; i++ )
    scanf( "%d", &values[i] );

for( i = 0 ; i < 10 ; i++ )
    printf( "\n%d", values[i] * 2 );

練習問題 6 - 2

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

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

int     values[10];
int     i;

for( i = 0 ; i < 10 ; i++ )
    scanf( "%d", &values[i] );

for( i = 9 ; i >= 0 ; i-- )
    printf( "\n%d", values[i] );

練習問題 6 - 3

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

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

int     values[10];
int     i;

for( i = 0 ; i < 10 ; i++ )
    scanf( "%d", &values[i] );

printf( "\n偶数:" );

for( i = 0 ; i < 10 ; i++ )
{
    if( ( values[i] % 2 ) == 0 )
        printf( "%d ", values[i] );
}

printf( "\n奇数:" );

for( i = 0 ; i < 10 ; i++ )
{
    if( ( values[i] % 2 ) != 0 )
        printf( "%d ", values[i] );
}

練習問題 6 - 4

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


int     sum;
int     values[10];
int     i, j;

for( i = 0, sum = 0 ; i < 10 && sum <= 100 ; i++ )
{
    scanf("%d", &values[i] );
    sum += values[i];
}

for( j = 0 ; j < i ; j ++ )
    printf( "\n%d", values[j] );

練習問題 6 - 5

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


int binary[16];
int value;
int i;

scanf( "%d", &value );

for( i = 15 ; i >= 0 ; i-- )
{
    binary[i] = value % 2;
    value /= 2;
}

for( i = 0 ; i < 16 ; i++ )
    printf( "%d", binary[i] );

練習問題 6 - 6

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


int kuku[9][9];
int i, j;

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

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

    printf( "\n" );
}

練習問題 6 - 7

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


int kuku[9][9];
int i, j;
int p, q;

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

scanf( "%d", &p );
scanf( "%d", &q );

printf( "%d", kuku[p-1][q-1] );

練習問題 6 - 8

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


int values[10];
int i, j, t;

for( i = 0 ; i < 10 ; i++ )
    scanf( "%d", &values[i] );

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

for( i = 0 ; i < 10 ; i++ )
    printf( "%d ", values[i] );
※ ソートの問題さまざまな方法がある
PAPER BOWL
NEZEN