18回:演習:マルバツゲームを作る1

  • マルバツゲームを作りながら必要な手法を学んでいく.
    • マルバツゲームは、入力->機械計算->出力->入力->機械計算->出力->入力->...の繰り返し.
    • コンピュータの代表的な処理を含んでいて,かつ,難しくないのでプログラミングの演習にはもってこい
    • ここでの目的はマルバルゲームを作りながらこれまでまなんだことを復習しつつ,実践的なプログラミングの方法を学んでいく
  • 本日の目標
    • マルバツゲームをつくるためにとりあえず対話的に入力する必要があるので,

入力ができるようになる.

    • 2つの数字をいれてそれの和を出力するプログラムを作る
    • 枠を作って,任意の場所に「0」や「○」をいれられることがポイント

scanf関数を使う.

scanf関数の基本

int a;
a=3;

みたいなのをaにコンピュータから入力をする場合,

scanf("%d",&a);

とかく.scanf("%d",&変数) するところがポイント.まず,"%d"を無視して,&の部分に着目する.
&の部分はどの変数に代入したいかでかわる.もし,bならば

int b=6;

となら、

scanf("%d",&b);

とする.
もし,testならば

int test=6;

となら、

scanf("%d",&test);

に置き換えればいい.

  • 以下無視しても大丈夫

次に,"%d"の部分に着目する.これはprintfと同じ方式である.
例えば,"test1test"と入力してもらい,1を変数aに代入する場合は,

int a;
scanf("test%dtest",&a);

とすればいい.
printfと同じで2つの変数もできる.
hello13hello12と入力してaとbに入れる場合は

int a,b;
scanf("hello%dhello%d",&a,&b);

これはカンマ区切りの文章を読み取るときに応用できる.

int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);

とすれば134,425,62や41,32,12のようなカンマ区切りの文章を入力をうけつけられる.

  • 例えば,以下のプログラムをつくってみる
int main(){
 int a;
 scanf("%d\n",&a);
 printf("a is %d.\n",a)
}

入力待ちがわからないので,

int main(){
 int a;
 printf("aの値を入力してください\n");
 scanf("%d\n",&a);
 printf("a is %d.\n",a)
}

とするとよい.

  • 演習

(1)aとbの値の入力をうけつけて,「aは..です,bは..です」
というプログラムを作りなさい.
(2)aとbを足した結果を出力したプログラムをつくりなさい.
  具体的には,「aを入力してください」,入力,「bを入力してください」,入力,「a+b=xxです」と表示する.例えば,a=3, b=2; 「a+b=5です」と表示.
(3)入力した数だけ,連続した数字を出力するプログラムをだしなさい
 例えば,5を入力したら,1,2,3,4,5と出力,10を入力したら,1,2,3,4,5,6,7,8,9,10と出力.
(4)5個の数字の入力を受け付け、その和を求める、プログラミングを書きなさい.非配列->配列.