请用C语言编写函数fun, 函数的功能是: 将M行N列的二维数组中的数据, 按列的顺序依次放到一维数组中。

#include<stdio.h>void fun(int p[3][3]){ int i,j,m,int q[10]; for(j=0;j<3;j++) for(i=0;i<3;i++) { m=j*3+i; q[m]=p[i][j]; }
}void main(){ int p[3][3]={{33,33,33},{44,44,44},{55,55,55}},q[10],i; fun(p); for(i=0;i<10;i++) printf("%d",q[i]);}

函数使用两个嵌套的for循环以列为顺序遍历二位数组,将其中每一个数据元素都存储进准备好的一维数组中。

因为c语言函数无法将整个数组作为返回值,故函数会返回一个指向一维数组的指针。具体代码如图:

扩展资料:

二维数组作为参数的三种传参形式:

    传数组,第二维必须标明。如:

    void fun(int array[][N])

    数组指针,第二维必须标明。如:

    void fun(int (*array)[4])

    传指针。如:

    void fun(int **array)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-10

#include<stdio.h>

voidfun(char(*s)[n],char*b)

{inti,j,k=0;

for(j=0;j<n;j++)

for(i=0;i<m;i++)

{b[k]=*(*(s*i)+j

k==;}

b[k]=‘\0’;}

扩展资料:

chara使用方法:

C语言中char用于定义字符类型变量或字符指针变量,例如“chara;”则定义了变量a是字符类型,“char*a;”则定义了变量a是字符指针类型。

char是C语言整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中不指定为signed/unsigned,编译器可以实现为带符号的,也可以实现为不带符号的。

关于char还有一个特殊的语言就是char*,它在C语言中有专门的语义,既不同于signedchar*,也不同于unsignedchar*,专门用于指以'\0'为结束的字符串。

C语言所有基本数据类型:

void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。

char:字符型类型数据,属于整型数据的一种。

int:整型数据,表示范围通常为编译器指定的内存字节长。

float:单精度浮点型数据,属于浮点数据的一种。

double:双精度浮点型数据,属于浮点数据的一种。

参考资料:

百度百科——char(计算机语言关键字)

本回答被网友采纳
第2个回答  2019-07-14

void fun(char (*s) [N],char *b)

{

int i, j, k=0;

for (i=0; i<N; i++) /*按列的顺序依次放到一个字符串中*/

for (j=0; j<M; j++)

b [k++] =s [j] [i];

b[k]=’\0’;

}

扩展资料:

C/C++语言中,fun函数通常被主函数所调用。它是指用fun来定义一个函数(或方法),这样在引用时可以用fun表示。比如int fun(int x,int y),void fun(char* a,char* b) 等等。

有先前的定义,就可以在主函数里调用它,比如ans=fun(3,7);或者fun(p1,p2)。fun函数是自定义函数。fun一词没有其它意思,只是在调用时用这个单词表示该函数。

例如:

#include<iostream>

using namespace std;

int fun(int x,int y)

{ int result=1;  

for(int i=1;i<=y;i++)

{ result*=x; }  

return result;}int main()

{ int ans;    ans=fun(3,7);//调用fun函数计算3的7次幂  

cout<<ans<<endl;//输出2187

return 0;

}

参考来源:

百度百科-fun函数

本回答被网友采纳
第3个回答  推荐于2018-02-27
#include<stdio.h>
void fun(int p[][3],int q[]){
int i,j,m;
for(j=0;j<3;j++)
for(i=0;i<3;i++)
{ m=j*3+i;
q[m]=p[i][j];}
}
void main(){
int p[3][3]={{33,33,33},{44,44,44},{55,55,55}};
int q[10]={0,0,0,0,0,0,0,0,0};
int i;
fun(p,q);
for(i=0;i<10;i++) printf("%d",q[i]);
}
上机验证过了,好好加油
祝好~本回答被提问者和网友采纳
第4个回答  推荐于2016-12-05
#include<stdio.h>
void fun(int p[][3],int q[])
{
    int i,j,m;
    for(j=0;j<3;j++)  
    for(i=0;i<3;i++)
    { 
         m=j*3+i;
         q[m]=p[i][j];
    }
}
void main()
{
    int p[3][3]={{33,33,33},{44,44,44},{55,55,55}};
    int q[10]={0,0,0,0,0,0,0,0,0};
    int  i;
    fun(p,q);
    for(i=0;i<10;i++)  
    printf("%d,",q[i]);
}