1989年開業 技術士 佐伯英子(情報工学部門) 文部科学省登録番号 第22082号 日本技術士会会員 東大阪商工会議所会員

≫サンプルプログラム一覧 

オープンソース/C言語サンプルプログラム  コンピュータが選んだ数字を当てる

●コンピュータがランダムに選んだ数字を当てるゲームプログラムです。
●最初に乱数を1回発生させ、100で割った余りをコンピュータが選んだ
 数字とします。
●コンピュータが選んだ数字と同じ数字を入力すると、結果を表示して終了
 します。
 ≫ソースファイルのダウンロード: suujiate01.c

【問題】
●7回以内に必ず当たる方法を見つけなさい。
●「アウト!!」が表示されるのは、何回入力した後か。
●プログラム中の2つの文
   n1=rand( );                // 乱数発生
   n1%=100;                  // 100で割った余り
 を1つの文にしなさい。
●コンピュータが選ぶ数字の範囲を、1 から 10 に変更してみよう。
●範囲外の数字を入力したら、「範囲外ですよ」と表示するよう変更して
 みよう。

/********************/
/*  数字当てゲーム  */
/********************/
#include <stdio.h>
#include <time.h>
#include <windows.h>

void  main( )
{
    int   n1;                                  // コンピュータが選んだ数字
    int   n2;                                  // 入力数字
    int   i;
    char  c[128];

    system("cls");                             // 画面消去

    srand(time(NULL));                         // 乱数の準備
    n1=rand( );                                // 乱数発生
    n1%=100;                                   // 100で割った余り

    printf("****************************************\n");
    printf("* 今コンピュータが数字を1つ選びました *\n");
    printf("* 選んだ数字を当ててください           *\n");
    printf("* 数字の範囲は 0 から 99 までです      *\n");
    printf("****************************************\n");

    for( i=1; i<=10; i++ )
      {
        printf("\n数字: ");                    // 数字表示
        fflush(stdout);
        gets(c); n2=atoi(c);                   // Aの値を入力
        if ( n1==n2 ) break;                   // 同じ数字
        if ( n1< n2 )
             printf("  大きすぎます");
        else
             printf("  小さすぎます");
      }

    if ( i<=10 ) printf("\n\n%d回目で当たり\n",i);
         else    printf("\n\n\aアウト!!  正解は %d でした\n",n1);
}
   

※SSL暗号化通信対応

佐伯英子技術士事務所 〒542-0073 大阪市中央区日本橋 1-14-13 サンオフィス日本橋601  E-mail: info@saeki-pe.com