【演習】

配列に格納された10個の数を,大きい順に並べかえて,表示するプログラム(ソート)を作りなさい.

ソートのアルゴリズムは,情報処理1でいくつか取り上げました.ココでは,もっともわかりやすいものを示します.他のアルゴリズムについても興味のある人は調べてみてください.

プログラムを組む上でのポイントは,

です.

#include <stdio.h>
void main()
{
    int a[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
    int i,j,buf;

    for(i=0; i<9; i++){
        for(j=i+1; j<10; j++){
            if(a[i] < a[j]){
                printf("Swap %d to %d\n", i,j);
                buf = a[i];
                a[i] = a[j];
                a[j] = buf;
            }
        }
    }

    for(i=0; i<10; i++){
        printf("%d th Data  = %d\n", i+1, a[i]);
    }
}

		

よく確認しておいてください.

今週からは,復習です.演習問題をたくさん出しますので,自分でどんどん実行してみてください.


【演習】

まず,先週の演習で行った,「キーボードから入力された文字数を数えるプログラム」を元に,回文を判定するプログラムを作成してみよう.

回文とは,「しんぶんし」のように上から読んでも,下から読んでも同じになる言葉のことです.

入力された文字列を,反転し,元のものと同じかどうか判定します.英単語でできればOKです.


乱数

ここで,ゲームなどのプログラムを作成するのに必ず必要となる乱数について説明し,じゃんけんや,おみくじを作ってみましょう.

「でたらめな数」を乱数といい,プログラミングの重要なテクニックになっています.まずは,乱数の使い方を見てみましょう.

#include <stdlib.h>
#include <stdio.h>

void main(void)
{
    int i;

    randomize();    // 乱数発生ルーチンの初期化
    printf("0 から 99 までの 10 個の乱数\n\n");
    for(i=0; i<10; i++)
       printf("%d\n", rand() % 100);
    return 0;
}

【演習】

この乱数を利用して,プログラムをスタートすると

0がグー,1がチョキ,2がパー

として,どれかを出してくるプログラムをまず作ってみる.

これができるようになったら,こちらの手を数字で入力し,勝ち負けの判定もできるようにする.


Oh-o! Meijiのレポートから(第11,12回)のところへ,演習で作成したプログラムを送る.プログラムには必ず,学年,組,番号,氏名,メールアドレスを記入すること.