C primer plus 第六版 第十章 第十三題 程式設計練習答案
阿新 • • 發佈:2018-12-20
Github地址:φ(>ω<*)這裡這裡。
/*
本程式應 習題-13 建立。
題目要求: 編寫一個程式,提示使用者輸入3組數,每組數包含5個double型別的數。
(假設使用者都正確地響應,不會輸入非數值資料)。
該程式應完成下列任務。
a. 把使用者輸入的資料儲存在3X5的陣列中。
b. 計算每組(5個)資料的平均值。
c. 計算所有資料的平均值。
d. 找出這15個數據中的最大值。
e. 列印結果。
每個任務都要用單獨的函式來完成(使用傳統C處理陣列的方式)。
完成任務b,要編寫應計算並返回一維陣列平均值的函式,利用迴圈呼叫該函式3次。
對於處理其他任務的函式,應該把整個陣列作為引數,完成任務c和d的函式應把結果返回主函式。
*/
#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); return; }