C primer plus 第六版 第十章 第十四题 编程练习答案

版权声明:转载请注明来源~ https://blog.csdn.net/Lth_1571138383/article/details/84847741

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

猜你喜欢

转载自blog.csdn.net/Lth_1571138383/article/details/84847741