C primer plus 第六版 第十章 第九題 程式設計練習答案
阿新 • • 發佈:2018-12-20
Github地址:φ(>ω<*)這裡這裡。
/*
本程式應 習題-9 建立。
題目要求: 編寫一個程式,初始化一個double型別的3x5二維陣列,使用一個處理變長陣列的函式將其拷貝至另一個二維陣列中。
還要編寫一個以變長陣列為形參的函式以顯示兩個陣列的內容。這兩個函式應該能處理任意NxM陣列。
(如果編譯器不支援變長陣列,就使用傳統C函式處理Nx5的陣列。)
*/
#include<stdio.h> #define I 3 #define O 5 void Cp(double (* a)[O], double (* b)[O]); void Show(double (* a)[O], double (* b)[O]); int main(void) { double a[I][O] = {}; double b[I][O] = {}; int y = 1; for (int c = 0; c < I; c++) { for (int d = 0; d < O; d++) { *(*(b+c) + d ) = y; y++; } } Cp(a, b); Show(a, b); printf("\nBye !\n"); getchar(); return 0; } void Cp(double (* a)[O], double (* b)[O]) { for (int c = 0; c < I; c++) { for (int d = 0; d < O; d++) { *(*(a+c) + d ) = *(*(b+c) + d ) ; } } return; } void Show(double (* a)[O], double (* b)[O]) { for (int c = 0; c < I; c++) { for (int d = 0; d < O; d++) { *(*(a+c) + d ) = *(*(b+c) + d ) ; printf("The array is : %lf.\n", *(*(a+c) + d ) ); } } return; }