《C Primer Plus(第五版)中文版》第十章第8题答案

发布时间:2016-12-7 18:38:04 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"《C Primer Plus(第五版)中文版》第十章第8题答案",主要涉及到《C Primer Plus(第五版)中文版》第十章第8题答案方面的内容,对于《C Primer Plus(第五版)中文版》第十章第8题答案感兴趣的同学可以参考一下。

编写一个程序,初始化一个3X5的二维double数组,并利用一个基于变长数组的函数把该数组复制到另一个二维数组。还要编写一个基于变长数组的函数来显示两个数组的内容。这两个函数应该能够处理NXM数组。 1、main.c #include <stdio.h> #include "mymath.h" int main(void) { double source[ROWS][COLS] = { {1.1,1.2,1.3,1.4,1.5}, {2.2,3,3,4.4,5.6,4.7}, {2.2,3,3,4.4,5.6,4.7} }; double tar[ROWS][COLS]; copy2array(ROWS,COLS,source,tar); ptr2array(ROWS,COLS,tar); return 0; } 2、mymath.h //常量及函数申明 #define COLS 5 #define ROWS 3 //返回一维数组中最大值 int maxarray(int arr[],int n); //返回一维double数组中的最大值的索引编号 int maxdoublearray(double arr[],int n); //返回一维double数组中的最小值的索引编号 int mindoublearray(double arr[],int n); //返回一个double数组中最大值和最小值的差 double maxminarray(double arr[],int n); //使用数组索引编号的方法,将一个数组复制到另一个数组这之中 //复制成功后,返回1,失败返回0。 int copy_arr(double source[],double target[],int n); //使用指针地址的方法,将一个数组复制到另一个数组这之中 //复制成功后,返回1,失败返回0。 int copy_ptr(double *source,double *target,int n); //打印一维double数组中的值 void ptrarray(double *ar,int n); //打印二维double数组中值 void ptr2array(int rows,int cols,double ar[rows][cols]); //复制二维double数组到另一个二维数组中(使用可变长数组技术) void copy2array(int rows,int cols,double ar[rows][cols],double tar[rows][cols]); 3、mymath.c #include <stdio.h> #include "mymath.h" //返回一维整数数组中最大的值 int maxarray(int arr[],int n) { int max = arr[0]; for(int i = 1;i<n;i++) if(max <= arr[i]) max = arr[i]; return max; } //返回一维double数组中的最大值的索引编号 int maxdoublearray(double arr[],int n) { double max = arr[0]; int nmax = 0; for(int i = 1;i < n;i++) if(max <= arr[i]) { max = arr[i]; nmax = i; } return nmax; } //返回一维double数组中的最小值的索引编号 int mindoublearray(double arr[],int n) { double min = arr[0]; int nmin = 0; for(int i = 1;i < n;i++) if(min > arr[i]) { min = arr[i]; nmin = i; } return nmin; } //返回一个double数组中最大值和最小值的差 double maxminarray(double arr[],int n) { double x = arr[maxdoublearray(arr,n)] - arr[mindoublearray(arr,n)]; return x; } //使用数组索引编号的方法,将一个数组复制到另一个数组这之中 //复制成功后,返回1,失败返回0。 int copy_arr(double source[],double target[],int n) { int i; for(i = 0;i<n;i++) target[i] = source[i]; if(i == n) return 1; else return 0; } //使用指针地址的方法,将一个数组复制到另一个数组这之中 //复制成功后,返回1,失败返回0。 int copy_ptr(double *source,double *target,int n) { int i; for(i = 0;i<n;i++) *(target+i) = *(source+i); if(i == n) return 1; else return 0; } //打印一维double数组中的值 void ptrarray(double *ar,int n) { for(int i = 0;i < n;i++) printf("%.1f\t",*(ar+i)); } //打印二维double数组中值 void ptr2array(int rows,int cols,double ar[rows][cols]) { int r,c; for(r = 0;r<rows;r++) { for(c = 0;c<cols;c++) printf("%.1f\t",ar[r][c]); printf("\n"); } } //复制二维double数组到另一个二维数组中(使用可变长数组技术) void copy2array(int rows,int cols,double ar[rows][cols],double tar[rows][cols]) { int r,c; for(r = 0;r < rows;r++) { for(c = 0;c < cols;c++) tar[r][c] = ar[r][c]; } }

上一篇:查询,删除表中重复的记录
下一篇:dp训练&nbsp;1004

相关文章

相关评论