第4回の演習の解答例

(1)上の条件分岐を参考に,じゃんけんプログラムを完成させよう。

解答例:


#include <stdio.h>

 
void main()
{
    /* 変数の定義 */
	int a, b;    

    /* 入 力 */
	printf ("a君の手は " );
	scanf ( "%d", &a );	
	printf ("b君の手は " );
	scanf ( "%d", &b );	
    /* 処 理 */
	if(a == 1 && b == 1){
		printf("あいこです¥n");
	}else if(a == 1 && b == 2){
		printf("A君の勝ち¥n");
	}else if(a == 1 && b == 3){
		printf("Bさんの勝ち¥n");
	}else if(a == 2 && b == 2){
		printf("あいこです¥n");
	}else if(a == 2 && b == 3){
		printf("A君の勝ち¥n");
	}else if(a == 2 && b == 1){
		printf("Bさんの勝ち¥n");
	}else if(a == 3 && b == 3){
		printf("あいこです¥n");
	}else if(a == 3 && b == 1){
		printf("A君の勝ち¥n");
	}else if(a == 3 && b == 2){
		printf("Bさんの勝ち¥n");
	}
}



(2)上の条件分岐は,間違いではありませんが,ちょっと正直すぎます。場合分けを「勝ち」,「負け」,「あいこ」の三つに整理してみよう。

解答例:



#include <stdio.h>

void main()
{
	int a, b;

	printf("a君とb君がじゃんけんします.¥nグー : 1 チョキ : 2 パー : 3¥n");
	printf("A君の手 a=");
    	scanf("%d", &a);

	printf("B君の手 b=");
	scanf("%d" ,&b);

	if( (a-b == -1) || (a-b == 2)){
		printf("A君の勝ちです¥n");
	}else if((a-b == -2 )||( a-b == 1)){
		printf("B君の勝ちです¥n");
	}
}


(3)あいこだと繰り返すじゃんけんプログラムを完成させよう。

解答例:



#include <stdio.h>
 
void main()
{
    int a, b, win;

    win=0;  /* あいこ:0、Aの勝ち:1、Bの勝ち:2 */

	while(win==0) {
		printf("a君とb君がじゃんけんします.¥nグー : 1 チョキ : 2 パー : 3¥n");

		printf("A君の手 ");
		scanf("%d", &a);

		printf("B君の手 ");
		scanf("%d" ,&b);

		if( (a-b == -1) || (a-b == 2)){
			win=1;

		}else if((a-b == -2 )||( a-b == 1)){
			win=2;
		}
	}
	
	if(win==1){
		printf("A君の勝ちです。¥n");
	}else{
		printf("B君の勝ちです。¥n");
	}
}


(4)掛け算の九九を一から九の段まですべて表示するプログラムを作成せよ

解答例:



#include <stdio.h>

void main()
{
    int i, j;

    i = 0;

    while ( i < 9 ){

        j = 0;

    	while ( j < 9 ) {

        printf("%d×%d=%d¥n",i+1,j+1,(i+1)*(j+1));

        j++;

    	}

   i++;

   }

}


(5)1から,入力した値 n までの和を求めるプログラムを,while文を用いて作成せよ

解答例:


#include <stdio.h>

void main()
{
    int i, n, a;

    printf ("n= " );
    scanf ( "%d", &n );

    a = 0;
    i = 1;

    while ( i <= n ) {

        a += i;

        i++;
    }
    
    printf ( "%d¥n", a );
    
}


(6)じゃんけんプログラムを,自分のアイディアに基づき改良しよう。


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

void main()
{
 	int a,b,win;

	win=0; 
 
	while(win==0){
		printf("じゃんけんをします.¥nグー : 1 チョキ : 2 パー : 3¥n");
 		scanf("%d",&a);

		randomize();
		b=(rand()%3)+1;

 		printf("コンピュータ¥n%d¥n",b);

		win=a-b;
 
		if(win==0){
		printf("あいこ¥n");
		}
	}

	if(win==-1||win==2){
		printf("あなたの勝ち¥n");
	}else{
		printf("あなたの負け¥n");
	}
}