1樓:匿名使用者
可以用一個雙重迴圈呀
int i,j;
for(i=0;i for(j=0;j ss[i][j]=1; 2樓:匿名使用者 先像樓上說得一樣迴圈出一個陣列c所有元素為1以後如果要用到初始ss為1的話 直接memcpy(ss, c, sizeof(c));直接拷貝記憶體,很快 示例:#include int main() }memcpy(ss, c, sizeof(c)); return 0; }這樣只需要迴圈一次生成所有元素為1的陣列而以後使用memcpy,速度相當快 3樓:匿名使用者 int ss[100][200]; int i,j; for(i=0;i<100;i++} for(j=0;j<200;j++) 4樓:匿名使用者 使用雙重for迴圈賦值,memset不可以 5樓:匿名使用者 這樣當然不對。這樣的結果是隻有ss[0][0]被附值為1。其他全是0。 想為陣列附值酒藥用迴圈做。比如ss[m][n]int i,j; for(i=0;i for(j=0;j ss[i][j]=1; 這樣就給所有元素附值為1了; 6樓:匿名使用者 那你只好用迴圈賦值了 c語言如何讓二維字元陣列全部被初始化為同一個值 7樓:寒輕煙 1、要有這樣一個抄malloc產生的二維bai陣列,或者用dunew產生的也行。 2、不zhi能按照圖示**執行。 3、首先dao先釋放陣列的陣列。 4、然後我們再釋放單個陣列。 5、然後我們執行就會發現,陣列被成功釋放,現在的array地址已經是隨機地址了。 8樓:塵埃開出花 c語言讓bai zhi步驟如下: 1、定義二dao維回陣列的方法和一維陣列相似,如答:int a[3][3],就是定義了一個3行3列的二維陣列。 2、這個3行3列的二維陣列是邏輯上的概念,能形象的表示出行列關係。而在記憶體中,各元素是連續存放的,不是二維的,是線性的。 3、二維陣列的初始化,可以分行給元素賦值。 4、可以對部分元素賦值,例如:int a[3][3]=,,}。 5、也可以只對某幾行賦值,例如:int a[3][3]=,}。 6、如果對全部元素都賦初值,則定義陣列時可以對第一維的長度不指定,但第二維的長度不能省去,也可以只對部分元素賦值,而省略第一維的長度,但應該分行賦值。 9樓:用著追她 1、新建一個工程和 bai.c檔案 du ,輸入標頭檔案和主函式zhi 。dao 2、宣告函式並且初始化陣列。 3、通過呼叫函回 數輸出二答維陣列的值。 4、然後開始定義一個函式。 5、然後開始進行呼叫函式如下。 6、編譯、執行看到二維字元陣列全部被初始化為同一個值。 10樓:文化廚子 1、c語言中來 的字元陣列,主要用自於儲存c風格的字串,因此無論一維、二維,常規的初始化操作是初始化整數0。比如下面的**: char a[10][10] = ; 陣列在初始化時,如果初始化了第1個字元,後面的字元,系統會自動填充為0,這是一個c語言中的規定。 2、使用memset函式,將二維陣列當成一維陣列處理,進行初始化。示例如下: #include #include int main() 11樓:芝心地帶 初始化可以全賦值0,但是不能全賦值為m,只能用迴圈的方法 第二個問題我用vc++6.0沒有報錯 12樓:匿名使用者 你一開始qipan初始化的那個最後的分號你打了個冒號。。。。 13樓:小猥瑣之葉子 給出bai以下代 du碼: #include #include using namespace std; int main() }return 0;} 14樓:匿名使用者 初始化只能用迴圈 下面那句話是不是因為沒有包含stdio.h? 15樓:陳冠鋼 #include "memory.h" /*使用memset全部置成'm'*/ memset(qipan,'m',100*100); printf那句應該沒錯。錯誤資訊是什麼? 16樓:匿名使用者 memset(qipan, 'm', sizeof(qipan)); 17樓:匿名使用者 meset (qipan,'m',10000) c語言有關二維陣列變數初始化 18樓:aaa**王 例如對整型二維陣列a[3][2]賦值 方法一: 在定義的同時賦值 int a[3][2]=;//所有陣列元素均為0方法二: int a[3][2]=;//常規的賦值方法方法三: int a[3][2]=,,};//分行的賦值方法方法四: int a[3][2]=,,};//部分賦值方法,第一行元素的值分別為1,2,第二行元素值都是0, 第三行第一個元素值為3,第二個元素值為0 方法五: int a[3][2];/先定義 for(i=0;i<=3;i++) //用雙重for迴圈賦值,i,j表示二維陣列下標 for(j=0;j<=2;j++) scanf("%d",&a[i][j]); 19樓:函吉貫尋菡 二維陣列可以看成特殊的一維陣列,每個元素又由一個一維陣列組成。 例如:構建一個maxrownum*maxrownum的矩陣 long double **data1_bfe; data1_bfe=(long double **)malloc(maxrownum*sizeof(long double *)); for(i=0;i動態分配maxrownum個long double的記憶體空間,跟long double a[5]相似,但前者是堆上分配的,後者是棧上分配的; data1_bfe=(long double **)malloc(maxrownum*sizeof(long double *)); 意思就是定義一個有maxrownum個long double型別的指標的動態陣列,然後在裡面存放指標,相當於容器,data1_bfe就會成為指標的指標。 注意事項:c語言在定義陣列和表示陣列元素時常常採用a[ ][]的形式,使用方便,不易出錯。 20樓:year好好學習 方法一: 在定義的同時賦值 int a[3][2]=;//所有陣列元素均為0 方法二: int a[3][2]=;//常規的賦值方法 方法三: int a[3][2]=,,};//分行的賦值方法 21樓:匿名使用者 int array[10][10]=;//這是全0 或者int array[3][3]=; 22樓:一米陽光鮑 int table=; 23樓:程式設計師的每一天 c語言陣列之二維陣列 24樓: 第一個初始化方法有錯 25樓:匿名使用者 若干變數按有序的形式組織起來, 以便於程式處理,這些資料元素的集合就是陣列,按照陣列 元素的型別不同,可分為:數值陣列、字元陣列、指標陣列 結構陣列等各種類別。 陣列說明的一般形式為: 型別說明符 陣列名[常量表示式],......; 其中型別說明符可以是任一種基本資料型別或構造資料型別 陣列名是定義的陣列識別符號。常量表示式表示資料元素的個 數,也就是陣列的長度。 對陣列型別的說明應注意: 1)陣列的型別實際上是陣列元素的取值型別。 2)陣列名的書寫應符合識別符號的書寫規範。 3)陣列名不能與其他變數名相同。 4)常量表示式表示陣列元素的個數,但是其下標從0開始計算 5)不能在方括號中用變數來表示元素的個數,但是可以用符號 常數或常量表示式。 6)允許在同一個型別說明中,說明多個陣列和多個變數。 陣列元素的表示方法 一般比較簡單就是陣列名[下標]來引用,先定義後用,如果 是小數的話,直接自動取整。 陣列賦值分為:初始化賦值和動態賦值 初始化賦值一般形式為: static 型別說明符 陣列名[常量表示式]=; static表示靜態儲存型別,c語言規定只有靜態儲存陣列和外部陣列 才可做初始化賦值。 c語言對陣列的初始化賦值還有幾個規定: 1)可以只給部分元素賦值。 2)只能給元素逐個賦值,不能給陣列整體賦值。 3)如不給可初始化的陣列賦初值,在在陣列說明中,可以不給出陣列 元素的個數。 下面看一下多維陣列 主要看一下二維陣列,其他的就可以用二維陣列類推得到 二維陣列的型別說明的一般形式是: 型別說明符 陣列名[常量表示式1][常量表示式2]...; 在c語言中二維陣列是按行排列的 二維陣列的表示方法: 陣列名[下標][下標] 二維陣列的初始化 二維陣列初始化也是在型別說明時給各下標變數賦以初值。 二維陣列可 按行分段賦值,也可按行連續賦值。 二維陣列的初始化還應該注意: 1)可以只對部分元素賦初值,未賦初值的元素自動取為0。 2)如對全部元素賦初值,則第一維的長度可以不給出。 字元陣列: 用來存放字元變數的陣列稱為字元陣列。 c語言允許用字串的方式對陣列作初始化賦值。例如: static char c=; 可寫為: static char c=; 或去掉{}寫為: sratic char c="c program"; 用字串方式賦值比用字元逐個賦值要多佔一個位元組, 用於存放字串結 束標誌'\0'。上面的陣列c在記憶體中的實際存放情況為: c program\0`\0'是 由c編譯系統自動加上的。由於採用了`\0'標誌,所以在用字串賦初值時一 般無須指定陣列的長度, 而由系統自行處理。在採用字串方式後,字元數 組的輸入輸出將變得簡單方便。 除了上述用字串賦初值的辦法外,還可用 printf函式和scanf函式一次性輸出輸入一個字元陣列中的字串, 而不必 使用迴圈語句逐個地輸入輸出每個字元。 void main() printf("%s\n",c); 注意在本例的printf函式中,使用的格式字串為"%s", 表示輸出的是一 個字串。而在輸出表列中給出陣列名則可。 不能寫為: printf("%s",c); void main() char st[15]; 本例中由於定義陣列長度為15, 因此輸入的字串長度必須小於15, 以留出一個位元組用於存放字串結束標誌`\0`。 應該說明的是,對一個字 符陣列,如果不作初始化賦值,則必須說明陣列長度。還應該特別注意的是, 當用scanf函式輸入字串時,字串中不能含有空格,否則將以空格作為串 的結束符。例如執行例4.8,當輸入的字串中含有空格時,運**況為: input string:this is a book this 從輸出結果可以看出空格以後的字元 都未能輸出。 為了避免這種情況, 可多設幾個字元陣列分段存放含空格的 串。程式可改寫如下: lesson void main() 本程式分別設了四個陣列, 輸入的一行字元的空格分段分別裝入四個陣列。 然後分別輸出這四個陣列中的字串。在前面介紹過,scanf的各輸入項必須以 地址方式出現,如 &a,&b等。但在例4.8中卻是以陣列名方式出現的,這是為 什麼呢?這是由於在c語言中規定,陣列名就代表了該陣列的首地址。 整個 陣列是以首地址開頭的一塊連續的記憶體單元。如有字元陣列char c[10],在 記憶體可表示如圖4.2。設陣列c的首地址為2000,也就是說c[0]單元地址為2000。 則陣列名c就代表這個首地址。因此在c前面不能再加地址運算子&。如寫作 scanf("%s",&c);則是錯誤的。 在執行函式printf("%s",c) 時,按陣列名c 找到首地址,然後逐個輸出陣列中各個字元直到遇到字串終止標誌'\0'為止。 字串常用函式: 用於輸入輸出的字串函式在使用前應包含標頭檔案"stdio.h",使用其他字串 函式則應包含標頭檔案"string.h".下面介紹幾個常用的字串函式: 1)字串輸出函式 puts 格式:puts(字元陣列名) 功能:把字元陣列中的字元 串輸出到顯示器。 #include"stdio.h" main() 2)字串輸入函式gets 格式:gets(字元陣列名) 功能:從標準輸入裝置上 輸入一個字串。 #include"stdio.h" main() tips:gets函式並不以空格作為字串輸入結束的標誌,而只是以回車作為輸入 結束,這是與scanf不同的部分 3)字串連線函式strcat 格式:strcat(字元陣列名1,字元陣列名2) 功能:把字元陣列2中的字串連線到字元陣列1中字串後面,並刪去字串 1後的串標誌"\0",本函式返回字元陣列1的首地址。 #include"string.h" main() 4)字串拷貝函式strcpy 格式:strcpy(字元陣列名1,字元陣列名2) 功能:把字元陣列2中的字串拷貝到字元陣列1中,串結束標誌 "\0"也一同 拷貝,字元陣列2也可以是一個字元常量,就相當於把一個字串賦予一個字元陣列 #include"string.h" main() 5)字串比較函式strcmp格式:strcmp(字元陣列1,字元陣列2) 功能: 按照ascii碼順序比較兩個陣列中的字串,並有函式返回值返回比較結果 #include"string.h" main() a[i]=n; for(i=0;i<10;i++) printf("%d",a[i]); printf("\n"); }例二: main() printf("\narray a:\n"); for(i=0;i<=2;i++) printf("\narray b:\n"); for(i=0;i<3;i++) printf("%5d",b[i]); printf("\n"); }例三: void main() puts(cs[i]); printf("\n"); 另外,站長團上有產品**,便宜*** 寫完以後我發現有點長,樓主給點耐心看,不懂我們再交流 a是整個二維陣列的首地址,short長度為2,sizeof a 2 5 5 50 a 1指向二維陣列的第二個元素,它僅僅是一個指標,如果在a 1前面加一個 號,就是第二個元素的值,即a 0 1 所以,a 1是一個指標,它指向二維陣列中的某個數,指... rand 用於產生一個隨機數,可以這麼使用 a rand 10 rand 2 要包含的庫是stdlib.h include include include int main for int i 0 i 10 i 輸出看一下而已printf n printf 輸入想生成多少個 int n scanf ... include void fun int p1 3 int p2 3 int main int p1 3 3 int p2 3 3 int i 0,j 0 fun p1,p2 for i 0 i 3 i for j 0 j 3 j printf d p2 i j printf n return 0 ...c語言二維陣列問題
C語言中如何產生隨機的二維陣列的座標
c語言中指標做函式引數傳遞二維陣列