當前位置:首頁 » 編程語言 » 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;

}

通過這種方法,來得到二維數組。

熱點內容
mysql存儲過程語法 發布:2024-04-19 21:00:04 瀏覽:245
修復損壞的壓縮文件 發布:2024-04-19 20:53:32 瀏覽:423
編程發型 發布:2024-04-19 20:53:28 瀏覽:500
去除空格sql 發布:2024-04-19 20:43:30 瀏覽:785
linuxcp覆蓋 發布:2024-04-19 20:43:30 瀏覽:189
mplayerlinux 發布:2024-04-19 20:33:57 瀏覽:800
華勤伺服器怎麼樣 發布:2024-04-19 20:33:15 瀏覽:410
安卓app應用程序擴展名是什麼 發布:2024-04-19 20:08:29 瀏覽:560
sqlserver2005圖標 發布:2024-04-19 19:37:26 瀏覽:946
動畫與編程 發布:2024-04-19 18:53:10 瀏覽:315