身につくc言語-演習問題5回目 解答と解説-

問題1解答


#include<stdio.h>
int main(void)
{
	int a=0;
	int b;
	
	int i;
	
	scanf("%d",&b);
	
	for(i=0;i<b;i++)
	{
		a=a+2;
	}
	
	printf("%d",a);
	
	return 0;
}

入力した数分2をたしていくということで、for文を使います。

ここで難しいところは、for(i=0;i<b;i++)ibの部分です。
bとはすなわち入力した数ですので、日本語に直すと、

iを0にします。iがbになるまで、繰り返します。

という意味です。

問題2解答


#include<stdio.h>
int main(void)
{
	int a;
	int b;
	
	scanf("%d",&a);
	scanf("%d",&b);
	
	if(a<b)
	{
		printf("%d",b);
	}
	else
	{
		printf("%d",a);
	}
	
	return 0;
}

これは比較的簡単です。

if文を使い、abの時にbを出力。日本語に直すと、aがbより小さければbを出力。
それ以外の時は、aを出力です。

問題3解答


#include<stdio.h>
int main(void)
{
	int a[5];
	int i;
	
	int max;
	
	for(i=0;i<5;i++)
	{
		scanf("%d",&a[i]);
	}
	
	for(i=0;i<5;i++)
	{
		if(a[0]<a[i])
		{
			a[0]=a[i];
		}
		max=a[0];
	}
	
	printf("%d",max);
	
	return 0;
}

配列の使用ということで、まずa[5]をつくります。(a[5]は{a[0],a[1],a[2],a[3],a[4]}と同じ意味です。)

入力は


scanf("%d",&a[0]);
scanf("%d",&a[1]);
scanf("%d",&a[2]);
scanf("%d",&a[3]);
scanf("%d",&a[4]);

としても問題がないのですが、せっかくfor文があるのでこちらを使いましょう。

つぎの条件の書き方は、a[0]を基準にして大きい数ならばa[0]に代入されます。

日本語にすると、

もし、 a[0]がa[i]より小さければa[0]にa[i]を代入する。maxにa[0]を代入する。

となります。(iの値は0~4です。)

問題4解答


#include<stdio.h>

int max(int x,int z)
{
	if(x<z)
	{
		return z;
	}
	else
	{
		return x;
	}
}

int main(void)
{
	int a;
	int b;
	
	int c;
	
	scanf("%d",&a);
	scanf("%d",&b);
	
	c=max(a,b);
	
	printf("%d",c);
	
	return 0;
}

関数を使うということで、ここでは、max関数と名付けました。
max関数のもらう数は、xとyの二つのint 型のかず。渡す数は、int 型のかず。となっています。

まずmain関数で、二つの整数を入力させます。

そこで、max関数に、入力したaとbを渡します。

max関数内では、x(xにはaが入っています。)がz(zにはbが入っています。)より小さければzをかえす。
それ以外ならば、xを返すという意味です。

ここで大切なのは、どうmax関数に値を渡すか、どうmax関数から値を受けとるかです。

問題5解答


#include<stdio.h>

void keisan(void)
{
	int i,ix;
	
	for(i=0;i<9;i++)
	{
		for(ix=0;ix<9;ix++)
		{
			printf("%d\t",(i+1)*(ix+1));
		}
		printf("\n");
	}
}

int main(void)
{
	keisan();
	
	return 0;
}

問題だけを見ると難しく感じますが、比較的簡単です。

ここでは、keisan関数としました。

なぜ簡単かというと、関数に渡す値と、受け取る値がないからです。

受け取る値がない、渡す値がないときは、voidを使います。


まとめ

問題5を見てもらうとわかるように、関数を使うことによって、main関数の中身を少なくすることができます。

プログラムの中心であるmain関数が見にくいと、正確性が失われてしまいます。

誰が見てもわかりやすいというプログラミングをしていきましょう。