C primer plus 第六版 第十章 第二題 程式設計練習答案

Aeron-A發表於2018-11-30

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;
}

 

相關文章