C Primier Plus(第六版)第10章 编程练习 VS2019测试

第1题

/*编程练习10.1修改程序清单10.7的rain.c程序,用指针进行计算。*/
#include<stdio.h>
#define MONTHS 12
#define YEARS  5
void sum_rain(float rain[][MONTHS],int year);
void sum_rain_1(float(*p)[MONTHS], int year);

int main(void)
{
	const float rain[YEARS][MONTHS] =
	{
		{4.3,4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6},
		{8.5,8.2,1.2,1.6,2.4,0.0,5.2,0.9,0.3,0.9,1.4,7.3},
		{9.1,8.5,6.7,4.3,2.1,0.8,0.2,0.2,1.1,2.3,6.1,8.4},
		{7.2,9.9,8.4,3.3,1.2,0.8,0.4,0.0,0.6,1.7,4.3,6.2},
		{7.6,5.6,3.8,2.8,3.8,0.2,0.0,0.0,0.0,1.3,2.6,5.2}
	};
	const float(*p)[MONTHS] = rain;
	printf(" YEAR     RAINFALL (inches)\n");
	sum_rain(rain, YEARS);
	printf("\n");
	printf(" YEAR     RAINFALL (inches)\n");
	sum_rain_1(*p, YEARS);

	return 0;
}

//数组计算
void sum_rain(float rain[][MONTHS], int year)
{
	int y, m;
	float subtot, total=0;
	for (y = 0; y < YEARS; y++)
	{
		for (m = 0,subtot=0; m < MONTHS; m++)
			subtot += rain[y][m];
		printf("%5d %15.1f\n", 2010 + y, subtot);
		total += subtot;
	}
	printf("\nThe yearly average is %.1f inches.\n\n", total / YEARS);
	printf("MONTHLY AVERAGES:\n\n");
	printf(" Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec\n");
	for (m = 0; m < MONTHS; m++)
	{
		for (y = 0, subtot = 0; y < YEARS; y++)
			subtot += rain[y][m];
		printf("%4.1f ", subtot / YEARS);
	}
	printf("\n");
}

// 指针计算
void sum_rain_1(float(*p)[MONTHS], int year)
{
	int i, j;
	float subtot, total=0;

	for (i = 0; i < YEARS; i++)
	{
		for (j = 0, subtot = 0; j < MONTHS; j++)
			subtot += *(*(p + i) + j);
		printf("%5d %15.1f\n", 2010 + i, subtot);
		total += subtot;
	}
	printf("\nThe yearly average is %.1f inches.\n\n", total / YEARS);
	printf("MONTHLY AVERAGES:\n\n");
	printf(" Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec\n");
	for (j = 0; j < MONTHS; j++)
	{
		for (i = 0, subtot = 0; i < YEARS; i++)
			subtot += *(*(p + i) + j); 
		printf("%4.1f ", subtot / YEARS);
	}
	printf("\n");
}

第2题

/*编程练习10.2 拷贝数组(略)*/
#include<stdio.h>
void copy_arr(double ar[], double sou[], int n);
void copy_ptr(double *ar, double *sou, int n);
void copy_ptrs(double *ar, double *sou, double * end);

int main(void)
{
	double source[5] = { 1.1,2.2,3.3,4.4,5.5 };
	double target1[5];
	double target2[5];
	double target3[5];

	printf("source[5]={%.1f,%.1f,%.1f,%.1f,%.1f}\n",
		source[0], source[1], source[2], source[3], source[4]);

	copy_arr(target1, source, 5);
	copy_ptr(target2, source, 5);
	copy_ptrs(target3, source, source+5);

	return 0;
}

void copy_arr(double ar[], double sou[], int n)
{
	int i;
	for (i = 0; i < n; i++)
		ar[i] = sou[i];
	printf("target1[5]={%.1f,%.1f,%.1f,%.1f,%.1f}\n",
		ar[0], ar[1], ar[2], ar[3], ar[4]);
}

void copy_ptr(double* ar, double* sou, int n)
{
	int index;
	for (index = 0; index < n; index++)
		*(ar+index) = *(sou+index);
	printf("target2[5]={%.1f,%.1f,%.1f,%.1f,%.1f}\n",
		*ar, *(ar+1),*(ar+2),*(ar+3),*(ar+4));
}

/*
void copy_ptrs(double *ar, double *sou, double* end)
{
	while (sou < end)
	{
		*ar = *sou;
		sou++;
		ar++;		
		//由于赋值完毕后ar++,指针向后移动一位,此时首元素已经变成了(ar+1),所以下面打印*ar显示越界
	}
	printf("target3[5]={%.1f,%.1f,%.1f,%.1f,%.1f}\n",
		*(ar + 1), *(ar + 2), *(ar + 3), *(ar + 4), *(ar + 5));
}
*/

void copy_ptrs(double* ar, double* sou, double* end)
{
	double* temp = ar;	//用一个中转指针指向目标指针,改变中转指针首元素位置不影响目标指针位置?
	while (sou < end)
	{
		*temp = *sou;
		sou++;
		temp++;		
	}
	printf("target3[5]={%.1f,%.1f,%.1f,%.1f,%.1f}\n",
		*ar,*(ar + 1), *(ar + 2), *(ar + 3), *(ar + 4));
}

第3题

/*编程练习10.3 编写一个函数,返回存储在int类型数组中的最大值,并在一个简单的程序中测试该函数*/
#include<stdio.h>
int max_arr(int*ar, int n);

int main(void)
{
	const int ar[10] = { 3,5,7,11,50,6,7,15,20,12 };

	printf("Find the maximum value in the array.\n");
	printf("The maximum value in the array is %d.\n", max_arr(ar, 10));

	return 0;
}
int max_arr(int*ar, int n)
{
	int max=0;
	int index;
	for (index = 0; index < n; index++)
	{
		if (max < *(ar + index))
			max = *(ar + index);		
	}
	return max;
}

第4题

/*编程练习10.4 编写一个函数,返回存储在double类型数组中的最大值的下标,并在一个简单的程序中测试该函数*/
#include<stdio.h>
int max_arr(double* ar, int n);

int main(void)
{
	const double ar[10] = { 3.21,5.52,7.0,11.52,10.54,6.8,7.9,15.21,100.10,12.02 };

	printf("Find the maximum value in the array.\n");
	printf("The maximum value in the array is ar+%d.\n", max_arr(ar, 10));

	return 0;
}
int max_arr(double* ar, int n)
{
	double max = 0;
	int index, index_max;
	for (index = 0; index < n; index++)
	{
		if (max < *(ar + index))
			max = *(ar + index);
	}
	for (index = 0; index < n; index++)
	{
		if (max = *(ar + index))
			index_max = index;
	}

	return index_max;
}

第5题

/*编程练习10.5 编写一个函数,返回存储在double类型数组中的最大值和最小值的差值,并在一个简单的程序中测试该函数*/
#include<stdio.h>
double def_arr(double* ar, int n);

int main(void)
{
	const double ar[10] = { 6.21,10.52,7.0,11.52,10.54,6.8,7.9,15.21,100.10,12.02 };

	printf("Find the difference between the maximum and minimum values in the array.\n");
	printf("The difference between the maximum and minimum values in the array %.2f.\n", def_arr(ar, 10));

	return 0;
}
double def_arr(double* ar, int n)
{
	double max = 0, min=*ar, defference;	//最大值置为0,最小值默认为首元素
	int index;
	for (index = 0; index < n; index++)
	{
		if (max < *(ar + index))
			max = *(ar + index);
		if (min > *(ar + index))
			min = *(ar + index);
	}
	defference = max - min;
	return defference;
}

第6题

/*编程练习10.6 编写一个函数,把double类型数组中的数据倒序排列,并在一个简单的程序中测试该函数*/
#include<stdio.h>
#define SIZE 5
void reverse_order(double* target, double* source, int n);

int main(void)
{
	double source[SIZE] = { 10.25,52.0,15.02,21.0,87.12 };
	double target[SIZE];
	int i;
	//打印源数组
	printf("source[%d]={", SIZE);
	for (i = 0; i < SIZE-1; i++)
		printf("%8.2f,", *(source + i));
	printf("%8.2f}\n",*(source+SIZE-1));
	//倒序排列
	reverse_order(target, source, SIZE);

	return 0;
}

void reverse_order(double* target, double* source, int n)
{
	int i, j;
	//执行倒序,引入两个变量,分别自增和自减
	for (i = 0, j = n - 1; i < n&&j >= 0; i++, j--)
		*(target + j) = *(source + i);
	//打印目标数组
	printf("target[%d]={", SIZE);
	for (i = 0; i < SIZE - 1; i++)
		printf("%8.2f,", *(target + i));
	printf("%8.2f}\n", *(target + SIZE - 1));
}

第7题

/*编程练习10.7 编写一个程序,初始化一个double类型的二维数组,使用编程练习2中的一个拷贝函数把给数组中
的数据拷贝志另一个二维数组中。*/
#include<stdio.h>
#define SIZE 5
void copy_arr(double target[SIZE][5], double source[][5], int n);  //复制二维数组
void printf_arr(double ar[SIZE][5], int n);  //打印二维数组

int main(void)
{
	double source[SIZE][5] = {
		{20.12,52.1,36.5,142.01,521.6},
		{12.21,87.12,542.12,15.0,154.1},
		{10.0,25.12,125.10,12.2,5.68},
		{12.25,53.02,86.6,14.4,254.1},
		{8.15,7.52,65.4,11.15,0.52},
	};
	double target[SIZE][5];
	//打印source数组
	printf("source=");
	printf_arr(source, SIZE);
	//执行数组拷贝
	copy_arr(target, source, SIZE);
	//打印target数组
	printf("target=");
	printf_arr(target, SIZE);

	return 0;
}

void printf_arr(double ar[SIZE][5], int n)
{
	int i, j;

	printf("{\n");
	for (i = 0; i < n; i++) {
		printf("{");
		for (j = 0; j < 4; j++)
			printf("%8.2f,", ar[i][j]);
		printf("%8.2f},\n", ar[i][j]);
	}
	printf("};\n");
}

void copy_arr(double target[SIZE][5], double source[][5], int n)
{
	int i, j;
	
	for (i = 0; i < n; i++)
		for (j = 0; j < 5; j++)
			target[i][j] = source[i][j];
}

第8题

/*编程练习10.8 使用编程练习2中的拷贝函数,把一个内含7个元素的数组中的第3~第5个元素拷贝至
内含3个元素的数组钟。该函数本身不需要修改,只需要选择合适的实际参数*/
#include<stdio.h>
void copy_arr(double ar[], double sou[], int n, int start, int end);


int main(void)
{
	double source[7] = { 1.1,2.2,3.3,4.4,5.5,6.6,7.7 };
	double target[3];
	

	printf("source[5]={%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f}\n",
		source[0], source[1], source[2], source[3], source[4], source[5], source[6]);

	copy_arr(target, source, 3, 3, 5);


	return 0;
}

void copy_arr(double ar[], double sou[], int n, int start, int end)
{
	int i,j;
	for (i = start,j=0; i <= end&&j<n; i++,j++)
		ar[j] = sou[i];
	printf("target[3]={%.1f,%.1f,%.1f}\n",
		ar[0], ar[1], ar[2]);
}

第9题

/*编程练习10.9 编写一个程序,初始化一个double类型的3*5二维数组,使用一个处理变长数组的函数将其拷贝
至另一个二维数组中。还要编写一个以变长数组为形参的函数以现实两个二维数组的内容。*/
//VS2019不支持变长数组
#include<stdio.h>
#define N 3
#define M 5
void copy_arr(double ar[][5], double source[][5], int n);
void prt_arr(double ar[][5], int n);

int main(void)
{
	double source[N][M] = {
		{1.1,2.2,3.3,4.4,5.5},
		{2.2,3.3,4.4,5.5,6.6},
		{3.3,4.4,5.5,6.6,7.7},
	};
	double target[N][M];

	printf("source=");
	prt_arr(source, 3);
	copy_arr(target, source,3);
	printf("target=");
	prt_arr(target, 3);

	return 0;
}
void copy_arr(double ar[][5], double source[][5], int n)
{
	int i, j;
	
	for (i = 0; i < n; i++)
		for (j = 0; j < 5; j++)
			ar[i][j] = source[i][j];
}

void prt_arr(double ar[][5], int n)
{
	int i, j;

	printf("{\n");
	for (i = 0; i < n; i++) {
		printf("{");
		for (j = 0; j < 3; j++)
			printf("%4.1f,", ar[i][j]);
		printf("%4.1f},\n", ar[i][4]);
	}
	printf("}\n");
}

第10题

/*编程练习10.10 编写一个函数,把两个数组中相对应的元素相加,然后把结果存储道第3个数组中。*/
#include<stdio.h>
#define N 3
void sum_arr(double ar[][5], double source_1[][5], double source_2[][5], int n);
void prt_arr(double ar[][5], int n);

int main(void)
{
	double source_1[N][5] = {
		{1.1,2.2,3.3,4.4,5.5},
		{2.2,3.3,4.4,5.5,6.6},
		{3.3,4.4,5.5,6.6,7.7},
	};
	double source_2[N][5] = {
		{4.4,5.5,6.6,7.7,8.8},
		{5.5,6.6,7.7,8.8,9.9},
		{6.6,7.7,8.8,9.9,10.0},
	};
	double target[N][5];

	printf("source_1=");
	prt_arr(source_1, N);
	printf("source_2=");
	prt_arr(source_2, N);

	sum_arr(target, source_1, source_2, N);
	printf("target=");
	prt_arr(target, N);

	return 0;
}

void sum_arr(double ar[][5], double source_1[][5], double source_2[][5], int n)
{
	int i, j;

	for (i = 0; i < N; i++)
		for (j = 0; j < 5; j++)
			ar[i][j] = source_1[i][j] + source_2[i][j];
}

void prt_arr(double ar[][5], int n)
{
	int i, j;

	printf("{\n");
	for (i = 0; i < n-1; i++) {
		printf("\t{");
		for (j = 0; j < 4; j++)
			printf("%6.1f,", ar[i][j]);
		printf("%6.1f},\n", ar[i][4]);
	}
	printf("\t{");
	for (j = 0; j < 4; j++)
		printf("%6.1f,", ar[n-1][j]);
	printf("%6.1f}\n", ar[n-1][4]);
	printf("}\n");
}

第11题

/*编程练习10.11 编写一个程序,声明一个int类型的3*5二维数组,并用合适的值初始化它。该程序打印数组的值,
然后翻倍,并显示个元素的新值。编写一个函数显示数组的内容,再编写一个函数让各值翻倍。*/
#include<stdio.h>
#define MULTIPLIER 2
#define N 3
void prt_arr(int ar[][5], int n);
void mul_arr(int ar[][5], int source[][5], int n, int m);

int main(void)
{
	int source[N][5] = {
		{1,2,3,4,5},
		{2,3,4,5,6},
		{8,7,6,5,4}
	};
	int target[N][5];

	printf("source=");
	prt_arr(source, N);
	mul_arr(target, source, N, MULTIPLIER);
	printf("target=");
	prt_arr(target, N);

	return 0;
}

void prt_arr(int ar[][5], int n)
{
	int i, j;

	printf("{\n");
	for (i = 0; i < n - 1; i++) {
		printf("\t{");
		for (j = 0; j < 4; j++)
			printf("%4d,", ar[i][j]);
		printf("%4d},\n", ar[i][4]);
	}
	printf("\t{");
	for (j = 0; j < 4; j++)
		printf("%4d,", ar[n - 1][j]);
	printf("%4d}\n", ar[n - 1][4]);
	printf("}\n");
}

void mul_arr(int ar[][5], int source[][5], int n, int m)
{
	int i, j;
	
	for (i = 0; i < n; i++)
		for (j = 0; j < 5; j++)
			ar[i][j] = m * source[i][j];
}

第12题

/*编程练习10.12 重写程序清单10.7的rain.c程序,把main()中的主要任务都改称函数来实现。*/
#include<stdio.h>
#include<stdio.h>
#define MONTHS 12
#define YEARS  5
void sum_rain(float rain[][MONTHS],int year);

int main(void)
{
	const float rain[YEARS][MONTHS] ={
		{4.3,4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6},
		{8.5,8.2,1.2,1.6,2.4,0.0,5.2,0.9,0.3,0.9,1.4,7.3},
		{9.1,8.5,6.7,4.3,2.1,0.8,0.2,0.2,1.1,2.3,6.1,8.4},
		{7.2,9.9,8.4,3.3,1.2,0.8,0.4,0.0,0.6,1.7,4.3,6.2},
		{7.6,5.6,3.8,2.8,3.8,0.2,0.0,0.0,0.0,1.3,2.6,5.2}
	};

	printf(" YEAR     RAINFALL (inches)\n");
	sum_rain(rain, YEARS);

	return 0;
}

//数组计算
void sum_rain(float rain[][MONTHS], int year)
{
	int y, m;
	float subtot, total=0;
	for (y = 0; y < YEARS; y++)
	{
		for (m = 0,subtot=0; m < MONTHS; m++)
			subtot += rain[y][m];
		printf("%5d %15.1f\n", 2010 + y, subtot);
		total += subtot;
	}
	printf("\nThe yearly average is %.1f inches.\n\n", total / YEARS);
	printf("MONTHLY AVERAGES:\n\n");
	printf(" Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec\n");
	for (m = 0; m < MONTHS; m++)
	{
		for (y = 0, subtot = 0; y < YEARS; y++)
			subtot += rain[y][m];
		printf("%4.1f ", subtot / YEARS);
	}
	printf("\n");
}

第13题

/*编程练习10.13 编写一个程序,提示用户输入3组数,每组包括5个double类型的数。该程序应完成下列任务(略)*/
#include<stdio.h>
#define N 3
double average_arr(double ar[][5], int n);
double max_arr(double ar[][5], int n);
void prt_arr(double ar[][5], int n);
void assign(double ar[][5], double ar_1[1][5], double ar_2[1][5], double ar_3[1][5], int n);
void enter_arr(double ar[1][5]);

int main(void)
{
	double source_1[1][5], source_2[1][5], source_3[1][5];
	double source[N][5];

	printf("Please enter the first 5-element array.\n");
	enter_arr(source_1);
	printf("Please enter the second 5-element array.\n");
	enter_arr(source_2);
	printf("Please enter the last 5-element array.\n");
	enter_arr(source_3);
	assign(source, source_1, source_2, source_3, N);
	printf("source_1=");
	prt_arr(source_1, 1);
	printf("source_2=");
	prt_arr(source_2, 1);
	printf("source_3=");
	prt_arr(source_3, 1);	
	printf("source=");
	prt_arr(source, N);
	printf("The average of source_1 is %8.2lf.\n", average_arr(source_1, 1));
	printf("The average of source_2 is %8.2lf.\n", average_arr(source_2, 1));
	printf("The average of source_3 is %8.2lf.\n", average_arr(source_3, 1));
	printf("The average of source is %8.2lf.\n", average_arr(source, N));
	printf("The max number of source is %8.2lf.\n", max_arr(source, N));

}
void assign(double ar[][5], double ar_1[1][5], double ar_2[1][5], double ar_3[1][5], int n)
{
	int i, j;

	for (i = 0; i < N; i++) {
		if (i == 0)
			for (j = 0; j < 5; j++)
				ar[i][j] = ar_1[0][j];
		if (i == 1)
			for (j = 0; j < 5; j++)
				ar[i][j] = ar_2[0][j];
		if (i == 2)
			for (j = 0; j < 5; j++)
				ar[i][j] = ar_3[0][j];
	}
}

void prt_arr(double ar[][5], int n)
{
	int i, j;

	if (n > 1) {
		printf("{\n");
		for (i = 0; i < n - 1; i++) {
			printf("\t{");
			for (j = 0; j < 4; j++)
				printf("%8.2lf,", ar[i][j]);
			printf("%8.2lf},\n", ar[i][4]);
		}
		printf("\t{");
		for (j = 0; j < 4; j++)
			printf("%8.2lf,", ar[n - 1][j]);
		printf("%8.2lf}\n", ar[n - 1][4]);
		printf("}\n");
	}
	else{
		printf("{");
		for (j = 0; j < 4; j++)
			printf("%8.2lf,", ar[0][j]);
		printf("%8.2lf}\n", ar[0][4]);
	}
}

void enter_arr(double ar[1][5])
{
	int i;
	for (i = 0; i < 5; i++) {
		if (scanf_s("%lf", &ar[0][i]) == 1)
			continue;
		else {
			printf("Error!\n");
			break;
		}
	}
}

double average_arr(double ar[][5], int n)
{
	int i, j;
	double sum=0, average;

	for(i=0;i<n;i++)
		for (j = 0; j < 5; j++)
			sum += ar[i][j];
	average = sum / (n * 5);
	
	return average;
}

double max_arr(double ar[][5], int n)
{
	int i, j;
	double max = 0;

	for(i=0;i<n;i++)
		for (j = 0; j < 5; j++) {
			if (max < ar[i][j])
				max = ar[i][j];
			continue;
		}
	return max;
}

第14题

/*编程练习10.14 以变长数组作为函数形参,完成变成练习13*/
/*编程练习10.13 编写一个程序,提示用户输入3组数,每组包括5个double类型的数。该程序应完成下列任务(略)*/
//由于VS2019不支持变长数组,这里简单修改变长练习13的代码,将N改称4,增加一个数组进行测试
#include<stdio.h>
#define N 4
double average_arr(double ar[][5], int n);
double max_arr(double ar[][5], int n);
void prt_arr(double ar[][5], int n);
void assign(double ar[][5], double ar_1[1][5], double ar_2[1][5], double ar_3[1][5], double ar_4[1][5], int n);
void enter_arr(double ar[1][5]);

int main(void)
{
	double source_1[1][5], source_2[1][5], source_3[1][5],source_4[1][5];
	double source[N][5];

	printf("Please enter the first 5-element array.\n");
	enter_arr(source_1);
	printf("Please enter the second 5-element array.\n");
	enter_arr(source_2);
	printf("Please enter the third 5-element array.\n");
	enter_arr(source_3);
	printf("Please enter the last 5-element array.\n");
	enter_arr(source_4);
	assign(source, source_1, source_2, source_3, source_4, N);
	printf("source_1=");
	prt_arr(source_1, 1);
	printf("source_2=");
	prt_arr(source_2, 1);
	printf("source_3=");
	prt_arr(source_3, 1);
	printf("source_4=");
	prt_arr(source_4, 1);
	printf("source=");
	prt_arr(source, N);
	printf("The average of source_1 is %8.2lf.\n", average_arr(source_1, 1));
	printf("The average of source_2 is %8.2lf.\n", average_arr(source_2, 1));
	printf("The average of source_3 is %8.2lf.\n", average_arr(source_3, 1));
	printf("The average of source_4 is %8.2lf.\n", average_arr(source_4, 1));
	printf("The average of source is %8.2lf.\n", average_arr(source, N));
	printf("The max number of source is %8.2lf.\n", max_arr(source, N));

}
void assign(double ar[][5], double ar_1[1][5], double ar_2[1][5], double ar_3[1][5], double ar_4[1][5], int n)
{
	int i, j;

	for (i = 0; i < N; i++) {
		if (i == 0)
			for (j = 0; j < 5; j++)
				ar[i][j] = ar_1[0][j];
		if (i == 1)
			for (j = 0; j < 5; j++)
				ar[i][j] = ar_2[0][j];
		if (i == 2)
			for (j = 0; j < 5; j++)
				ar[i][j] = ar_3[0][j];
		if (i == 3)
			for (j = 0; j < 5; j++)
				ar[i][j] = ar_4[0][j];
	}
}

void prt_arr(double ar[][5], int n)
{
	int i, j;

	if (n > 1) {
		printf("{\n");
		for (i = 0; i < n - 1; i++) {
			printf("\t{");
			for (j = 0; j < 4; j++)
				printf("%8.2lf,", ar[i][j]);
			printf("%8.2lf},\n", ar[i][4]);
		}
		printf("\t{");
		for (j = 0; j < 4; j++)
			printf("%8.2lf,", ar[n - 1][j]);
		printf("%8.2lf}\n", ar[n - 1][4]);
		printf("}\n");
	}
	else {
		printf("{");
		for (j = 0; j < 4; j++)
			printf("%8.2lf,", ar[0][j]);
		printf("%8.2lf}\n", ar[0][4]);
	}
}

void enter_arr(double ar[1][5])
{
	int i;
	for (i = 0; i < 5; i++) {
		if (scanf_s("%lf", &ar[0][i]) == 1)
			continue;
		else {
			printf("Error!\n");
			break;
		}
	}
}

double average_arr(double ar[][5], int n)
{
	int i, j;
	double sum = 0, average;

	for (i = 0; i < n; i++)
		for (j = 0; j < 5; j++)
			sum += ar[i][j];
	average = sum / (n * 5);

	return average;
}

double max_arr(double ar[][5], int n)
{
	int i, j;
	double max = 0;

	for (i = 0; i < n; i++)
		for (j = 0; j < 5; j++) {
			if (max < ar[i][j])
				max = ar[i][j];
			continue;
		}
	return max;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值