情報科学演習 宿題 2011.11.21

Back


0から11までの整数と0から59までの整数の2つを乱数で発生させて,それを時刻 の時間と分とする.すなわち,1と15が出た場合01:15 amという時刻とする.さらに もう一つ301から600までの整数を乱数で発生させ,それを分単位の経過時間とす る.最初の時刻に経過時間を加えた時刻を表示するプログラムを作成せよ.

ここで,時間や分が1桁のときには10の位に0を補って表示するものとし,12時間 制の時刻表示として午前はamを,午後はpmをつけて表示するものとする.

My student number: s114099

Start time ---- 10:45 am
436 minutes (7 h 16 m) passed.
Present time -- 06:01 pm

-----------------------------------

解答用紙


解答例

/* ************************************************** */
/*                                                    */
/*      情報科学演習 C6 C7                            */
/*      レポート課題                                  */
/*      2011.11.21                                    */
/*                                                    */
/* ************************************************** */
/*                                                    */
/*      学生番号:                                    */
/*                                                    */
/*      氏名:                                        */
/*                                                    */
/* ************************************************** */
/*                                                    */
/*      この行以降に解答のプログラムを書くこと        */

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

main()
{
	srand((unsigned) time(NULL));
	
	int h, m, add, tmp1, tmp2, h2, m2, h3, m3, h4;
	
	h = rand() % 12;
	m = rand() % 60;
	add = rand() % 300 + 301;

	printf("My student number: s114099\n\n");
	
	printf("Start time ---- ");
	
	if(h<10)
		printf("0");
		
	printf("%d:", h);
	
	if(m<10)
		printf("0");
		
	printf("%d am\n", m);
	
	tmp1 = add / 60;
	tmp2 = add % 60;

	printf("%d minutes (%d h %d m) passed.\n", add, tmp1, tmp2);
	
	h2 = h + tmp1;
	m2 = m + tmp2;
	
	if(m2>=60){
		h3 = h2 + 1;
		m3 = m2 % 60;
	}
	else{
		h3 = h2;
		m3 = m2;
	}
	
	if(h3>=12)
		h4 = h3 - 12;
	else
		h4 = h3;
		
	printf("Present time -- ");
	
	if(h4<10)
		printf("0");
	
	printf("%d:", h4);
	
	if(m3<10)
		printf("0");
	
	printf("%d", m3);
	
	if(h3>=12)
		printf(" pm\n");
	else
		printf(" am\n");
		
	printf("\n-----------------------------------\n\n");
	
	return(0);
}


Back