C primer plus 第六版 第十章 第十四題 程式設計練習答案
阿新 • • 發佈:2018-12-20
Github地址:φ(>ω<*)這裡這裡。
/*
本程式應 習題 - 14 建立。
題目要求: 以變長陣列作為函式形參,完成程式設計練習13。
因 VS 不支援 C99 標準,故改為以指標表示法做題。
*/
#include<stdio.h> void a(int (* f) [5], int n); int b_2(int (* f) [5], int n); int c(int (* f) [5], int n); int d(int (* f) [5], int n); void e(int n); int main(void) { int i = 0; int r = 0; // 任務b . int av = 0; // 任務c . int b = 0; // 任務d . int f[3][5] = { 0 }; // 任務a . a(f, 3); //任務b . for (i = 0; i < 3; i++) { r = b_2(f, i); printf("\n第%d行的平均值為%d.\n", i + 1, r); } putchar('\n'); // 任務c . av = c(f, 3); printf("所有資料的平均值是 %d .\n", av); putchar('\n'); // 任務d . b = d(f, 3); //任務e . e(b); putchar('\n'); printf("\nBye !\n"); getchar(); return 0; } void a(int (* f) [5], int n) { int i = 0; int j = 0; printf("Please input fifteen value :"); for (i = 0; i < n; i++) { for (j = 0; j < 5; j++) { scanf("%d", ( *( f + i ) + j) ); } } putchar( getchar() ); printf("\nPart a is over !\n\n"); return; } int b_2(int (* f) [5], int n) { int av = 0; // Average 平均值。 int j = 0; for (j = 0; j < 5; j++) { av += *(*(f + n) + j ); } return av / 5; } int c(int (* f) [5], int n) { int i = 0; int j = 0; int av = 0; for (i = 0; i < n; i++) { for (j = 0; j < 5; j++) { av += *(*(f + i) + j); } } return av / 15; } int d(int (* f) [5], int n) { int i = 0; int j = 0; int b = 0; for (i = 0; i < n; i++) { for (j = 0; j < 5; j++) { if (b < *(*(f + i) + j)) { b = *(*(f + i) + j); } else { // 空語句。 ; } } } return b; } void e(int n) { printf("\n最大的值是 %d .\n", n); return; }