プログラミング入門 情報科学演習 宿題 2016.10.31

Back


2桁の正の整数を1つ乱数により発生させる.そして,1の位が0(ゼロ)で無い場合には1の位の数と10の位の数を入れ替えた数を表示する.また,1のくらいが0のときには,10の位の数を新たに乱数により発生させた1〜9のどれかとし,元の数の10の位を1の位に移した数を以下のように表示するプログラムを作成せよ.

1の位の数が0でない時
My student number: s164099

Random number: 25
Reversed number: 52

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

1の位の数が0だった時
My student number: s164099

Random number: 60
Another number: 76

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

なお,結果の出力では必ず最初の行に自分の学生番号を,最後にハイフンによるラインをつけること.無い場合には減点するので注意.

1の位の数は剰余で,10の位の数は除算で取り出すことが可能です.以下を参考に考えてみてください.

二桁の整数,例えば45は,各位の数4と5により以下のように構成されています.

45 = 4 × 10 + 5
解答用紙を使用する際には,まず,科目名の不要な方を削除してください.また,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がC言語のプログラムとなっていますので, cc コマンドを実行して,コンパイルエラーの無いことを確認してから提出してください.

指定の解答用紙を使用していない,コンパイルエラーが出る,実行時に警告が出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください.


解答例

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

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

main()
{
	srand((unsigned) time(NULL));
	
	int num1 = rand() % 90 + 10, num2;
	
	printf("My student number: s164099\n\n");
	
	printf("Random number: %d\n", num1);
	
	if(num1%10!=0){
		num2 = num1 % 10 * 10 + num1 / 10;
		printf("Reversed number: %d\n", num2);
	}
	else{
		num2 = (rand() % 9 + 1) * 10 + num1 / 10;
		printf("Another number: %d\n", num2);
	}
	
	printf("\n------------------------------\n\n");
	
	return(0);
}

なお,結果の出力では必ず最初の行に自分の学生番号を,最後にハイフンによるラインをつけるこ


Back