下
C言語のお勉強ページに対するご意見・ご感想スレ
15:へなちょこ管理人 ★ 2008/09/01(月) 15:45:08 でけた。 ちょこちょこデバッグしながらで仕様を思い出せないですが、 なんとか期待通りの動作をしました。 /* 5人の学生の3教科(国語・数学・英語)の点数を 2次元配列を用いて処理するプログラムを自由に作成せよ。 例1):科目別の最高点を求める。 例2):各学生の3教科の平均点を求める。 */ #include <stdio.h> #define NINZU 5 #define KYOKA 3 void max(const int ma[NINZU][KYOKA], int no, int mb[KYOKA]) { int i, j; for ( i = 0; i < KYOKA; i++ ) { mb[i] = ma[0][i]; } for ( i = 1; i < no; i++ ) for ( j = 0; j < KYOKA; j++ ) if ( mb[j] < ma[i][j] ) mb[j] = ma[i][j]; } void avg(const int va[NINZU][KYOKA], int no, int vc[NINZU]) { int i, j; for ( i = 0; i < NINZU; i++ ) for( j = 0; j < no; j++ ) vc[i] += va[i][j]; for ( i = 0; i < NINZU; i++ ) vc[i] /= no; } int main(void) { int i; int a[NINZU][KYOKA] = { 0 }; int b[KYOKA] = { 0 }; int c[NINZU] = { 0 }; printf("%d人の国語、数学、英語の点数を入力して下さい。\n", NINZU); for ( i = 0; i < NINZU ; i++ ) { printf("[%02d] 国語:", i + 1); scanf("%d", &a[i][0]); printf(" 数学:"); scanf("%d", &a[i][1]); printf(" 英語:"); scanf("%d", &a[i][2]); } max(a, NINZU, b); avg(a, KYOKA, c); printf("国語の最高点:%d\n", b[0]); printf("数学の最高点:%d\n", b[1]); printf("英語の最高点:%d\n", b[2]); for ( i = 0; i < NINZU; i++ ) { printf("%02d人目の平均点:%d\n", i + 1, c[i]); return 0; }
上
前
次
1-
新
書
写
板
AA
設
索
C言語のお勉強ページに対するご意見・ご感想スレ http://newcomer.s368.xrea.com/test/read.cgi/bbs/1186266778/l50