情報科学演習 宿題 2012.12.17

Back


1桁の正の整数を乱数を用いて順次発生させていくものとする.発生した乱数をランダムに最初に用意した10に足したり10から引いたりして行くことを続け,演算結果が負になったら終了するプログラムを while 文を用いて作成せよ.

なお,表示においては先頭の行には自分の学生番号を,最後にはハイフンによるラインを出力すること.

My student number: s124099

10 + 8 - 6 + 5 - 7 + 7 - 1 - 5 + 7 - 3 + 5 - 8 - 5 - 9 = -2

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


解答例

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

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

main()
{
	srand((unsigned) time(NULL));
	
	int op, num, total=10;
	
	printf("My student number: s124099\n\n");
	printf("10");
	
	while(total>=0){
		num = rand() % 9 + 1;
		op = rand() % 2;
		
		if(op==0){
			printf(" + %d", num);
			total += num;
		}
		else{
			printf(" - %d", num);
			total -= num;
		}
	}
	
	printf(" = %d\n", total);
	printf("\n------------------------------\n");
	
	return(0);
}


Back