C 難題 二維陣列求和

2025-02-20 03:50:20 字數 3384 閱讀 2350

1樓:小黑哎啊

#include<

#include<

int main();

scanf("%d%d",&n,&m);

for(int i=1;i<=n;i++)a[i][1]=1;//第一行賦值1

for(int i=1;i<=m;i++)a[1][i]=1;//第一列賦值1

for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(i!=1&&j!=1){/第一列和第一行除外。

每個元素等於其左邊和上邊的元素之和。

a[i][j]=a[i-1][j]+a[i][j-1];

for(int i=1;i<=n;i++)求和for(int j=1;j<=m;j++)sum+=a[i][j];

printf("%d ",a[i][j]);列印 (測評時可以註釋掉)

puts("");換行 (測評時可以註釋掉)printf("%d",sum);/輸出和return 0;

2樓:炒飯君

大概就是這個意思,具體細節自己修正吧。

fun (int a[

int sum = 0;

for(int i=0; i < a1; i++)for(int j=0;j

請教乙個關於c/c++中二維陣列的問題,求詳解。

3樓:網友

初始化,設定集合c,初始時為空。

隨便第乙個標記為0的區域,加入c

while c!=空集:

取出c中乙個元素e

add neighbors(up down right left) of e marked as 0 to c, c= e as 2.

end while

最後掃瞄一遍矩陣,如果有0,則非全連通,否則是全連通,即0都變成了2.

c可以用乙個棧或者佇列來實現。

4樓:劍賀撥吉

暈,這麼大量的資料,空間使用g來衡量,肯定沒有足夠的記憶體。為了給你乙個想法:

定義乙個指標陣列,* p [100000],每個元素指向100,000個元素的陣列,陣列中的磁碟上的檔案,需要解決的學生檔案,檔案的過程寫完了,每次只有乙個陣列讀取到記憶體中,或建立乙個佇列,佇列滿時,一隊。

c語言二維陣列問題求解

5樓:debug一輩子

c語言的陣列在定義時的方括號裡的數字就是陣列的大小,比如。

char ch[100],陣列大小就是100,但是多陣列進行操作時,是從0開始的,ch[0],就是第乙個,ch[99]是第100個。這道題目 int x[2][3],表示乙個2行3列的二維陣列,所以c是正確的。

6樓:網友

這個題選選d,c正確,設有陣列 :

int arr[a][b][c][d][e][f];

則元素個數為a*b*c*d*e*f

可以想象成大盒子套小盒子包裝時,數量的計算,一維就是一層盒子包裝。

7樓:網友

。。定義時不算啊,int a[2]是幾個元素呢。

c語言二維陣列問題

8樓:莊政警

int* p=a; /對於目前的編譯器,這個是不合法的,a的型別是int(*)4],和p的型別不同,一些老舊的編。

譯器像turbo c型別檢查不嚴格,可能會用過。

int* p=a[0]; 這個合法,但不符合你的意圖,比如你要訪問a[1][1],用p的話就只能是p[5],而不能是p[1][1] ,這個指標p把a當作乙個有12個元素的1維陣列了,而不是3行4列的矩陣。

正確的做法是。

int (*p)[4]=a;

要用乙個指標來引用陣列,那麼該指標的型別就爛慎要定義成陣列的第一層元素的位址類碼歷簡型。

比如。int a[3]=;a的元素是int,元素位址類遲褲型是int* ,那麼就可以定義乙個int型指標來引用a:

int*p=a;

而。int[3][4]; a的元素是 int[4], 就是由4個int組成的陣列 ,位址型別是int(*)4],那麼這個指標就定義為:

int (*p)[4]=a;

9樓:網友

那兩個我都試了,都可以啊不清楚你說的不同在什麼地方。咐襪。

其次,對於陣列來說,他的指標就是陣列名,該指標指向陣列首位址,一般都不會專顫敗門用到指向陣列的指標。

再次,為衡洞激了標準,還是採取這樣的賦值方式:

int a[3][4]=,

c語言二維陣列問題

10樓:兔子和小強

不理解主要是因為不清楚陣列名和指標的區別。二者不是同樣地東西。

二維陣列是指一段連續的空間,比如int a[3][4]那麼a就是一段3*4連續空間的名字而已。

所以sizeof(a)求的是這段空間的大小而int **p;表明p是乙個指標,它指向的是乙個指標陣列。

sizoef(p)求的是p這個指標(指標其實是個整型)所佔空間大小。

陣列名做進行值傳遞時是傳陣列首位址,所以很多人把陣列名跟指標混淆a == &a;//成立,因為a是一段空間的名字,左邊是a的p == &p;//不成立。

從上可以大致知道陣列名與指標的區別。

int *p = ;//這是個指標陣列,裡面的元素是指標!!

int **q = q;//合法。

int a[3][4];//二維陣列。

q = a;//不合法。

11樓:網友

你把由四個int組成的一維陣列看成一種型別 比如 int4

那麼int a[3][4]就是 int4 a[3], 那麼 a就是int4型別的位址 ,而p是int*型別的位址。

12樓:混沌鴻門

只存在二級指標和二維陣列,**有二維指標哦!可能是我沒學到吧*是指向位址符,你定義的int **p 就是定義了乙個指標*p;

而p=a中的a 代表的是陣列a的首位址!所以不合法應該是*p=a才是合法的。

13樓:網友

譚浩強的書上寫得很清楚。翻吧。

c語言二維陣列問題

14樓:網友

1、name[num][10]表示num(10)行10列的陣列,num表示10個人,後面的10表示姓名字串的長度(最長為9,後面系統自動加上'\0')

2、不能用一維陣列定義姓名,因為是字元型別的陣列,姓名中包含多個字元。一維陣列只能儲存乙個姓名。

3、stmp是一維陣列,儲存乙個字串的。不是用來儲存10個人的姓名,僅作為字串交換的臨時變數。

c語言二維陣列

因為你的s是一個二維陣列。如果你的s是一維陣列,像s 20 這樣,那麼在gets時不需要加 0 你定義的s是個二維陣列,並且是char型別,所以每一行存放一個字串。s n 代表第n 1行,而gets時的引數需要是一個字串指標,或者字串陣列名,所以這裡必須要寫作gets s n 其中0 n 20 我明...

c語言中二維陣列的定義問題C語言中二維陣列的定義問題

正確寫法如下 char fd jgf1 maxitemlen 1 說明 把null去掉 1.二維陣列的第一個維度預設是 舉個例子 int tar 2 因為大括號中有4個元素,而且第二個維度是2,所以就可以計算出來第一維度是2.所以是可以預設的。2.你的這個例子中,第一維預設的應該是 7 8 1 ma...

二維陣列的陣列名字是什麼型別?C語言

二維陣列是乙個二級指標沒錯,但是在形參使用的時候有規定,形參的型別一定要和實參一模一樣。形參現在是int 實參是int 或int 在這裡因為實參是乙個行列這片連續位址的首位址,因為形參也必須是要知道第二維的大小,這才可以最正確的指向,所以你形參要寫成 matrix n 或者 matrix n 這樣就...