當前位置:首頁 » 編程語言 » c語言返回二維數組

c語言返回二維數組

發布時間: 2023-01-31 11:23:11

1. 在c語言中,如何把一個char類型的二維數組作為方法的返回值

這樣定義split函數:

char(*split(char*strs))[1024]
{
staticchartemp[1024][1024];
inti,j=0;
for(i=0;strs[i]!='';i++)
{
temp[j][i]=strs[i];
if(strs[i]==''){
printf("%s ",temp[j]);
j++;
}
}
returntemp;
}

函數頭很難看是不是,弄個typedef就簡單明了多了:

//還有,代碼有點問題,改了下
#include<stdio.h>
typedefchar(*parr1024)[1024];
parr1024split(char*strs)
{
staticchartemp[1024][1024];
inti,j=0,k=0;//再定義個k
for(i=0;strs[i]!='';i++)
{
temp[j][k++]=strs[i];//用k
if(strs[i]==''){
printf("%s ",temp[j]);
j++;
k=0;//復位k
}
}
returntemp;
}
intmain(){
charaa[]="helloworld";//後面加個空格方便測試split函數的輸出
split(aa);
return0;
}

2. 急急!!!如何用c語言輸入和輸出一個二維數組

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a[2][2];

int i,j;

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

{

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

{

scanf("%d ",&a[i][j]);

}

}

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

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

printf("%d",a[i][j]);

return 0;

}

運行成功

3. 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");
}
}

4. C語言中怎樣在調用函數中使用二維數組和指針, 返回的類型是一個二維數組的首地址,怎麼操作

二維數組的本質還是一位數組
返回數組指針就可以
int
a[3][10];//假設全局
int
*
func()
{
return
a;
//返回的就是數組的指針
}
int
main(void)
{
int
*b;
b=func();
//這里b就指向數組地址
return
0;
}

5. C語言讀取文件如何返回一個數組

c語言沒有直接讀取返回數組的函數。
看你問題里文件內容格式是:一行一個字元串回車換行。
那麼,用fgets一次讀一行,你寫循環調用這個fgets函數把讀取的值放在數組里。
至於你說的數組長度寬度不定,在c里需用malloc動態申請內存。
方法1:用fseek和ftell獲取整個文件位元組數,然後用malloc申請一個整個文件大小的內存地址(二維數組在內存中就是一維)。然後在循環中每次讀取一行到這個地址並計算一行長度,利用指針移得到每行首地址,最後所有行指針組成二維數組(行數也是動態申請)
方法2:你定義一個比較大的字元數組,作為零時存儲變數,每次循環中讀取一行到這個數組,再用strlen計算字元串長度,再用malloc按照這個長度申請一組地址(一行),並利用strcpy轉移內容,最後組成二維數組。
方法3:直接用malloc申請很大的二維數組,循環讀取獲取內容後,strlen獲取每行實際內容的長度。最後用realloc根據實際寬度和行數修改數組大小。

6. C語言,函數中如何返回二維數組,用return和不用return兩種方法

return 就直接返回可以了
不用return 就將二維數組的指針或者引用作為參數

7. C語言多次調用返回二維數組怎麼辦

聲明二維數組標准方法應該像這樣: int R[3][3];
你那種方法聲明的 R 是個一維指針數組。

函數只能返回 數組指針。
如果你是多次調用函數返回不同的數組,那麼當然要有相同數量的指針變數,這個沒有簡化的可能。

當然你可以創建一個 指針數組用來簡化存放、管理這些返回值。
比如: 聲明 R r[5]; 用的時候這樣用:(*r[0])[x][y];
如果是想多次調用返回的數組相同,或只需要保留一個,將返回值 始終賦給同一個變數就可以。

函數內每用 new 分配一次數組空間,要 delete 一次

8. 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;
}

9. C語言:編寫函數fun返回二維數組周邊元素之和,咋寫

入門到放棄?
「C/C++真的太難學了,我准備放棄了!」
很多初學者在學完C和C++的基本語法後,就停滯不前了,最終走向「從入門到放棄」。其實,我們初學者最需要的不是HelloWorld,也不是語法知識的堆砌,需要的只是實戰項目的磨礪。
一個項目一座城
一個項目,一座城。寫完一個項目,攻克一座城池。
以下十三個循序漸進的項目,讓你從小白,快速晉升為大牛。
奇牛項目1《黑客攻擊系統》-第一城
從完全零基礎開始,手把手開發這款黑客攻擊系統。
通過用戶端的輸入, 向伺服器端木馬發送攻擊命令,實現多種方式的攻擊效果。
通過這個項目,可以掌握C/C++基礎(數據類型,變數的使用,各種運算,控制語句,命名空間,輸入輸出,函數調用,庫文件的使用等),直接使用圖形庫來實現窗口用戶界面,直接使用庫文件來實現攻擊效果。
奇牛項目2 《人工智慧地形導航系統》-第二城‍‍
具備C/C++基礎後,進一步學習二維數組、多維數組在工程項目中的應用。
根據地圖的海拔數據,來識別地形上的各個峰點(最高點)和谷點(最低點),以確定地形中峰點的數目和位置,為探測器提供導航數據。
通過這個項目,可以深刻掌握二維數組、多維數組的本質,以及在工程項目中的應用方法。
奇牛項目3《人工智慧雙色球預測系統》-第三城‍
根據筆者Rock的閑暇之作改寫,體會以小博大的樂趣。
通過自動分析博彩官網的海量數據,根據自定義的統計預測規則,來捕捉下期開獎的最大概率。
通過這個項目,掌握指針的使用,以及指針在工程項目中的應用。

奇牛項目4《地震監測系統》-第四城‍
地震檢波器每隔固定的時間間隔,采樣一次預測地震的能量數據,並保存到文件中。地震監測系統從這個文件中讀取相應的能量數據,測試在給定的時間點上,一個短時間窗口內的取樣值與一個長時間窗口內取樣值的商,如果這個比例高於給定的閾值,那麼在這個事件點上極有可能發生地震。
通過這個項目,掌握C/C++文件的讀寫、以及動態內存管理的使用,以及它們在工程項目中的應用。
奇牛項目5《智能婚戀交友系統》-第五城
程序員的相親活動,低調且奢華。這個項目直接致敬某XX佳緣婚戀交友平台,畢竟Rock也曾經是該平台的注冊會員,並在其中活躍良久。
這個項目實現了該平台的核心功能-高匹配度自動交友。
通過這個項目,掌握C++的面向對象思想、繼承和派生、多態、友元、運算符重載等核心機制,以及它們在工程中的應用。
奇牛項目6《廣州軍區微波通信系統》-第六城
這個項目是根據筆者Rock負責研發的廣州軍區南海無線微波通信系統改寫的, 已去除敏感數據。
這個項目是在菲律賓、越南肆意騷擾我國南海島嶼的背景下研發的。通過這個項目,掌握C++核心機制-多態的使用,以及在軍事工程項目中的應用。
奇牛項目7《模板庫高級編程-萬能擇優器》-第七城
在掌握了C、C++的核心特性之後,能否掌握C++標准模板庫STL, 是區分一名合格C++程序員的重要標志。
這個項目通過構建一個通用的擇優器,來掌握C++泛型編程的使用,以及在自定義模塊開發中的應用。
奇牛項目8《游戲伺服器端資料庫》-第八城
在征服了C/C++語言的核心特性之後,很多人會感到新的迷茫:C/C++語言到底能做什麼?海量用戶數據怎麼處理?
這個項目從零開始構建大型游戲資料庫,以掌握資料庫開發的方法,以及在產品級項目中的應用。
奇牛項目9 《企業QQ》-第九城
很多C/C++初學者,認為C和C++雖然很強大,但是對於用戶界面開發,就不是很方便了。

其實對於用戶界面的開發,C和C++,尤其是C++,是非常強悍的。各種絢麗的用戶界面,C++都能游刃有餘地呈現。
這個項目能夠深度掌握基於C++的用戶界面開發,以及網路編程,實現產品級的應用效果。
奇牛項目10 《跨平台Word》-第十城
IT外包開發時,用戶的需求總是千變萬化,界面和功能都需要做特殊的定製,這個項目讓我們掌握開發特定UI和特定功能的應用軟體,為以後獨立承接IT外包打下足夠的基礎。
奇牛項目11《 游戲外*修改器》-第十一城
外*、逆向、破解無疑是每一位程序員為之嚮往的「禁地」,這個項目融合逆向、匯編、DLL注入、內存篡改等黑技術,開發客戶端游戲的外掛,實現對游戲數據的截取、修改。
通過這個項目,可以深刻掌握指針、逆向、DLL注入等技術的使用,以及Windows客戶端應用的開發。
奇牛項目12 《人工智慧中國象棋人機對弈》-第十二城
完勝李世石和柯潔的阿爾法狗,其底層框架就是使用C++實現的。
除了圍棋,C++更是在象棋領域完勝人類。這個項目,就是使用C++打造的人工智慧象棋。
通過這個項目,可以輕松掌握各種復雜數據結構,把個人編程能力提升到極致。
奇牛項目13 《電信級大型互聯網項目-共享順風車系統》-第十三城
掌握C、C++客戶端開發之後,高性能伺服器開發,成為判別C++高級程序員的重要標志。這個項目將實現電信級的大型互聯網伺服器。
通過奇牛編程的項目實戰,可以掌握百萬級高並發伺服器的核心技術(線程池、epool架構、協議開發等)
敲代碼的夜,清脆的鍵擊,孤獨而堅定。
彈指間,攻城略地,早已硝煙彌漫。
十三座城池,待你來征服。
經過以上13個項目的修煉,你已經從小白蛻變為能夠駕馭大型項目開發的大牛了。

10. C語言編程 二維數組

在C語言中,有時我們需要函數的返回值為一個二維數組。這樣外部函數接收到這個返回值之後,可以把接收到的二維數組當成矩陣操作(外部函數不可用普通的一級指針接收返回值,這樣的話,外部函數將不知道它具有二維性)。方法如下:
法1.沒有使用typedef類型定義

[cpp] view plain
#include <stdio.h>
int (*fun(int b[][2]))[2]
{
return b;
}

int main()
{
int i,j;
int a[2][2]={1,2,5,6};
int (*c)[2];
c = fun(a);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%d ",c[i][j]);
return 0;
}
法2.使用typedef類型定義

[cpp] view plain
#include <stdio.h>
typedef int (*R)[2];
R fun(int b[][2])
{
return b;
}
int main()
{
int i,j;
int a[2][2] = {1,2,5,6};
R c;
c = fun(a);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%d ",c[i][j]);
return 0;
}
使用typedef類型定義可以增加程序的可讀性
這兩種方法本質上是一樣的

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:521
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:868
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91