第13回演習の解答例


(1)整数で秒数を入力すると,何時間何分何秒と変換して画面に表示するプログラムを作成せよ.


#include <stdio.h>

void main()
{
	int second1, second2, minute, hour;

	printf("秒数を入力してください¥n");
	scanf("%d",&second1);

	hour = second1 / (60*60);
	minute = second1 % (60*60) / 60;
	second2 = second1 % (60*60) % 60;

	printf("時間に変換すると%d時間%d分%d秒です¥n",hour,minute,second2);

}

(2)二つの整数をキーボードから入力し,どちらがどれだけ大きいか,を表示するプログラムを作成せよ.


#include <stdio.h>

void main()
{
	int a, b;

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

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

	if(a > b){
		printf("aはbより%d大きいです¥n",a-b);
	} else if(a < b){
		printf("bはaより%d大きいです¥n",b-a);
	} else {
		printf("aとbは同じ値です¥n");
	}

}


(3)自然数nを入力すると,下記の数列の和を求めるプログラムを作成せよ.
     1!+2!+3!+・・・+n!


#include <stdio.h>

void main()
{
	int i, j, n;
	int sum, kaijou;

	sum = 0;
	kaijou = 1;

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

	for(i=1;i<=n;i++){
		kaijou *= i;
		sum += kaijou;
	}

	printf("数列の和は%dです¥n",sum);
}


(4)キーボードから入力された20個の実数を配列に格納し,その合計と平均値を画面に出力するプログラムを作成せよ.


#include <stdio.h>

void main()
{
	float a[20];
	int i;
	float sum = 0.0;

	for(i=0;i<20;i++){
		printf("a[%d]=",i);
		scanf("%f",&a[i]);
	}

	for(i=0;i<20;i++){
		sum += a[i];
	}

	printf("配列の合計値は%fです¥n",sum);
	printf("配列の平均値は%fです¥n",sum/20.0);
}