当前位置:首页 » 编程语言 » c语言函数返回二维数组

c语言函数返回二维数组

发布时间: 2022-07-02 01:08:23

❶ 如何返回一个二维数组

c语言中函数不能直接返回一个二维数组。但是可以通过其他方法实现类似功能: 一、把二维数组定义为全局变量 这样可以直接在另一个函数中调用 二、把二维数组作为指针传入到第一个函数中 然后同样作为指针传到另一个函数中 三、动态分配内存 在赋值函数中动态分配 并用返回值返回,在另一个函数中进行访

❷ C语言中返回二维数组

如果是在main中动态获得数组的值,那么,最好在main里面创建数组,然后把数组传给fun进行修改,等fun返回以后,main获得的就是修改后的数组了。
voidfunc(chararray[1000][4])
{
array[5][2]=100;
}
main()
{
chararr[1000][4];
fun(arr);
}

❸ C语言,函数中如何返回二维数组,用return和不用return两种方法

return 就直接返回可以了
不用return 就将二维数组的指针或者引用作为参数

❹ 如何返回函数内的二维数组

C语言中函数不能直接返回一个二维数组。但是可以通过其他方法实现类似功能:
1、把二维数组定义为全局变量 这样可以直接在另一个函数中调用
2、把二维数组作为指针传入到第一个函数中 然后同样作为指针传到另一个函数中
3、动态分配内存 在赋值函数中动态分配 并用返回值返回,在另一个函数中进行访问

❺ c语言怎么返回二维数组

int(*)[3]creatmatrix(void)//二维数组只能这样返回类型
{
staticinta[3][3];//需要定义成静态才不会丢失
printf("peleaseinputdata");
for(inti=0;i<3;i++)
for(intj=0;j<3;j++)
{
scanf("%d",&a[i][j]);//----整数是%d
}
returna;
};

intmain()
{
int(*p)[3]=creatmatrix(void);
return0;
}

❻ C语言 如何返回一个二维数组

1、函数不能返回一个数组,只能返回一个变量,或地址
。如果你想直接返回一个二维数组,这是做不到的。可以用下面的方法
,先建一个结构体。struct
array{int
a[3][3];};
array
solve(){array
a;return
a;}
通过这种方法,来得到二维数组。
2、数组在作为函数返回值或者函数参数时,实际上只作为指针来返回或者传递的。因此返回值用指针数据类型。比如下面的代码:int
g_a[4]
=
{1,2,3,4};
int
*
retn_arrary()
//返回值用指针类型即要。
{
return
g_a;
}

❼ C语言函数如何返回二维数组

你这个二维数组要动态分配的才行,不然存储周期只在他的函数里面有效

❽ C语言怎样返回二维数组元素

#include<stdio.h>
void main(void)
{
int b[100] = ; /*用于计数的数组,数值为x的由b[x-1]显示*/
int max , *p ,num = 0,k1,Line = 0;
int i ,j ,k ,c[5] = ; /*c数组保存前五个数量最多的数字,p用于后面的出现多个相同的频数的数组*/
for(Line = 0 ; Line <=900;Line+=100)
{
for( i = Line ;i<100+Line ; i++)
for( j = 0 ; j < 10 ; j++ )
b[ a[i][j] ]++; /*计数*/
/*下面找寻频率最高的5个数据,对b数组进行排序可以,不过排序后不再知道其原来的数据,要完成这个操作有两条路,一个是牺牲内存,即创造另外一个数组,进行排序,花费内存与b数组相同;二是多花时间,进行多次遍历搜索,下面采用第二种*/
for(j = 0; j<5;j++)
for(i = 0 ; i < 100 ; i++ )

max = 1;
k = 0;
if( max < b[i] && i!= lookup(i,c) ) max = b[i];/*lookup()函数的用法可以看一看*/
else if(max == b[i] ) k1++; /*当前最大值的数目自增*/
}
c[j] = max; /*保存第k大的元素*/
if(k1 != 0)
{ /*这里处理有相同的频率的几个数,我就不写了,内容是把这几个数都保存下来*/
j += k;
}
if(k + j > 4) break; /*最大的五个元素没有找到,楼主的题意有些没理清除,我认为是重新开始计数没错,这个所谓的求有多少次就是这个道理,寻找符合条件的,如果100行内前五中第五名有并列的(当然有可能是三个第四名之类),就不再进行后面的是否这五个元素均存在的判断了*/
else if(k + j == 4 )

for(k1 = 0 ; k1 < 5 ; k1++ )
if( find(c[k1],a[i+Line],10) ) ; /*原型find(int x,int y[],int z),在y数组中寻找与x值相同的元素,y数组大小为z,这个应该不是难点,寻找到则返回非零值,否则返回0值*/
else break;
if(k1 == 5) num++; /*全部五个元素均找到,次数增加1*/

}
}
printf("次数为%d",num);
}

❾ C语言如何让函数返回二维数组

你本身传递的就是数组,并不需要返回数组,直接在你的函数内更改二维数组的值的就行了(注意,如果在是函数内创建的数组,再返回会有问题,出了函数这个变量就无效了),比如如下
#include<stdio.h>
void fun(int (*pIntPtr)[4]) {
*(*pIntPtr + 0)=20;//将a[0][0]改为20
*(*(pIntPtr+3) + 2)=30;//将a[3][2]改为30
}

int main() {
int A[4][4] = {{10,2,3,1},{12,4,5,1},{14,7,8,1},{15,9,2,1}};
int i,j;
fun(A);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++) printf("%4d",A[i][j]);
printf("\n");
}
}

❿ C语言函数返回值为二维数组

函数不能返回一个数组,只能返回一个变量,或地址


如果你想直接返回一个二维数组,这是做不到的。

你可以用下面的方法


先建一个结构体。

struct
array

{

int
a[3][3];

};

array
solve()

{

array
a;

return
a;

}

通过这种方法,来得到二维数组。

热点内容
shell脚本日志输出 发布:2024-05-03 06:31:04 浏览:712
服务器快捷方式是什么意思 发布:2024-05-03 06:28:18 浏览:107
我的世界怎么成为服务器最靓的仔 发布:2024-05-03 06:26:44 浏览:852
安卓手机用博雅mm1用什么软件 发布:2024-05-03 06:19:23 浏览:692
算法键值 发布:2024-05-03 06:16:52 浏览:5
qq密码哪里开启 发布:2024-05-03 06:03:23 浏览:579
全排列的递归算法 发布:2024-05-03 05:42:28 浏览:901
肥胖的算法 发布:2024-05-03 05:38:09 浏览:783
两个数据库事务 发布:2024-05-03 05:33:41 浏览:855
phpjson转 发布:2024-05-03 05:33:40 浏览:659