有害气体检测记录表:C语言编程题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 13:03:25
编写函数int fun(int (*p)[N],int m,int *q),函数的功能是: 将M行N列
的二维数组p中的数据, 按行的顺序依次存放到一维数组q中, 一维数组中数据
的个数作为函数返回值带回. 例如, 下面程序运行时输出:
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44 */
#define N 4
int fun(int (*p)[N],int m,int *q)
{
}
main()
{int a[5][N]={{11,12,13,14},{21,22,23,24},{31,32,33,34},{41,42,43,44},\
{51,52,53,54}},b[20]={0},i,len;
len=fun(a,4,b);
for(i=0;i<len;i++)
{printf("%4d",b[i]);
if(i%4==3)
printf("\n");
}
}

以下是我的程序
#include <stdio.h>
#include <string.h>
#define N 4
int fun(int (*p)[N],int m,int *q)
{
int i;
for (i=0;i<N;i++)
memcpy(q+m*i,p[i],m*sizeof(int));
return N*m;
}
main()
{int a[5][N]={{11,12,13,14},{21,22,23,24},{31,32,33,34},{41,42,43,44},{51,52,53,54}};
int b[20]={0},i,len;
len=fun(a,4,b);
for(i=0;i<len;i++)
{printf("%4d",b[i]);
if(i%4==3)
printf("\n");
}
}

int fun(int (*p)[N],int m,int *q)
{
int len=m*N;
q=(int *)malloc(sizeof(int)*len);
int s=0;
for(int i=0;i<m;i++)
{
for(int j=0;j<N;j++)
{
q[s++]=p[i][j];
}
}
return len;
}