情報科学演習 宿題 2011.07.04

Back


3から8の範囲の整数を乱数で発生させ,その値に従って3×3から8かける8までの マトリックス状に1桁の正の整数の乱数を表示させる.各行と列の数値の平均値 を小数第1位まで表示するものとして,以下に示すような表示を行なうプログラ ムを作成せよ.

結果の表示は文字の配置や空行の挿入についても以下のようになるものとし,1 行目に必ず自分の学生番号を表示するよ うにすること.また,末尾にハイフンによるライン を引いておくこと.

My student number: s104099

Random number: 5

  1   6   2   8   1  3.6
  6   2   6   9   8  6.2
  7   7   6   9   6  7.0
  4   5   2   6   9  5.2
  1   6   2   7   8  4.8
3.8 5.2 3.6 7.8 6.4

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

注意

解答用紙
解答例

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

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

main()
{
	srand((unsigned) time(NULL));
	
	int ary[8][8], n, i, j, sum1, sum2;
	
	n = rand() % 6 + 3;
	
	printf("My student number: s104099\n\n");
	printf("Random number: %d\n\n", n);
	
	for(i=0; i<n; i++){
		sum1 = 0;
		
		for(j=0; j<n; j++){
			ary[i][j] = rand() % 9 + 1;
			printf("%3d ", ary[i][j]);
			sum1 += ary[i][j];
		}
		
		printf(" %3.1f\n", sum1*1.0/n);
	}
	
	for(i=0; i<n; i++){
		sum2 = 0;
		
		for(j=0; j<n; j++)
			sum2 += ary[j][i];
		
		printf("%3.1f ", sum2*1.0/n);
	}
		
	printf("\n\n-----------------------------------\n\n");
	
	return(0);
}


Back