解答例 9-1

【問1】

#include <stdio.h>

int main( void )
{
	/*** 最初は全員1位を設定 ***/
	int seiseki[10][2] = {
		{67, 1}, {43, 1}, {56, 1},
		{97, 1}, {30, 1}, {88, 1},
		{76, 1}, {55, 1}, {66, 1}, 
		{78, 1}
	};
	int i, j;
	
	/*** 他の全員と比べる ***/
	for ( i=0; i < 10; i++ ) {
		for ( j=0; j < 10; j++ ) {
			/*** 点数が少なければ ***/
			if ( seiseki[i][0] < seiseki[j][0] ) {
				/*** 順位が下がる ***/
				seiseki[i][1]++;
			}
		}
	}

	/*** 結果の表示 ***/
	puts( "点数  順位" );
	for ( i=0; i < 10; i++ ) {
		printf( "%3d      %2d\n", seiseki[i][0], seiseki[i][1] );
	}

	return 0;
}
	

【問2】

#include <stdio.h>

#define	 NINZU	5	(注)#defineについては第18を参照してください。
#define	 KAMOKU	4

int main( void )
{
	int no[NINZU] = {1001, 1002, 1003, 1004, 1005};
	int ten[NINZU][KAMOKU] = {
		{85, 74, 63, 90}, 
		{78, 65, 70, 62}, 
		{89, 92, 88, 76}, 
		{32, 48, 66, 25}, 
		{92, 76, 81, 98}
	};
	double avg[NINZU] = {0.0, 0.0, 0.0, 0.0, 0.0};
	char hyouka[NINZU];
	int i, j;

	printf( "番号 国語 数学 理科 社会  平均  評価\n" );
	for ( i = 0; i < NINZU; i++ ) {
		
		/*** 平均点を求める ***/
		for ( j = 0; j < KAMOKU; j++ ) {
			avg[i] = avg[i] + ten[i][j];
		}
		avg[i] = avg[i] / KAMOKU;
		
		/*** 評価を求める ***/
		if ( avg[i] < 60.0 )
			hyouka[i] = 'D';
		else if ( avg[i] < 70.0 )
			hyouka[i] = 'C';
		else if ( avg[i] < 80.0 )
			hyouka[i] = 'B';
		else
			hyouka[i] = 'A';
	}

	/*** 結果の表示 ***/
	for ( i = 0; i < NINZU; i++ ) {
		printf( "%4d  %4d  %4d  %4d  %4d %8.2f     %c\n", 
			no[i], ten[i][0], ten[i][1], ten[i][2], ten[i][3], 
			avg[i], hyouka[i] );
	}

	return 0;
}

戻る


banner初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved