C primer plus 第六版 第十章 第二題 程式設計練習答案
阿新 • • 發佈:2018-12-20
Github地址:φ(>ω<*)這裡這裡。
/*
本程式應 習題-3 建立。
題目要求:
編寫一個程式,初始化一個 double 型別的陣列,然後把該陣列的內容拷貝至 3 個其他陣列中。( 在main中宣告這4個數組。)
使用帶陣列表示法的函式進行第一份拷貝。
使用帶指標表示法和指標遞增的函式進行第二份拷貝。
把目標陣列名、源陣列名和帶靠背的元素個數作為前兩個函式的引數。
第三個函式以目標陣列名,源陣列名和指向源陣列最後一個元素後面的元素的指標。
*/
#include<stdio.h> #define n '\n' #define i 5 void i1(double a[i], double b[i]); void i2(double * a, double * b); void i3(double * a, double * b, double * c); int main(void) { double b[i] = {1, 2, 3, 4, 5}; double a1[i] = {}; double a2[i] = {}; double a3[i] = {}; i1(a1, b); i2(a2, b); i3(a3, b, b+i); printf("\nBye~\n"); getchar(); return 0; } void i1(double a[i], double b[i]) { printf("This is the first array:\n"); for (int a1 = 0; a1 < i; a1++) { a[a1] = b[a1]; printf("%2lf\n", a[a1]); } putchar(n); return; } void i2(double * a, double * b) { printf("This is second array:\n"); for (int a2 = 0; a2 < i; a2++) { *(a + a2) = *(b + a2); printf("%2lf\n", *(a + a2) ); } putchar(n); return; } void i3(double * a, double * b, double * c) { printf("This is third array:\n"); for (int a3 = 0; a3 < i; a3++) { *(a + a3) = *(b + a3); printf("%2lf\n", *(a + a3) ); } putchar(n); return; }