C語言二維數組的用法
⑴ c語言二維數組怎麼用
我也不是高手,也是初學。正巧碰到這個問題感覺我還是能解決的。就隨手寫了下,回答下。大家共同進步哈。有不對的地方還要請各位真正的高手指正。
代碼在下面,復制到你的編輯器裡面看比較好,加了註解的。還有問題就再問哈。
---------------------------------------------------------------
public class d_array
{
public static void main(String[] args)
{
int[][] d_array = new int[8][8]; //定義一個8行8列的二維數組
int num = 1; //定義一個填充用的數備用
for (int i = 0 ; i < d_array.length ; i++)
for (int j = 0 ; j < d_array[i].length ; j++)
d_array[i][j] = num++;
//讓上面那個填充數自加並填充進數組
for (int p = 0 ; p < d_array.length ; p++)
{
System.out.println("數組第 "+(p+1)+" 行中的值為:"); //加一句說明是第幾行的,不要也可以。
for (int q = 0 ; q < d_array[p].length ; q++)
System.out.print(d_array[p][q]+"\t"); //加這個\t可以有效的分離開兩個數,排版好看
System.out.print("\n\n"); //換行,第一個用於一行之後換行,第二個用於一個空行,與下面那行隔開,排版好看的
}
//分行列印數組
int sum = 0; //一樣,定義一個合備用
for (int m = 0 ; m < d_array.length ; m++)
for (int n = 0 ; n < d_array[m].length ; n++)
sum = sum + d_array[m][n];
//分別將數組中的各個數加到這個合中去,最後得到的這個合就是數組中所有數的合了。
System.out.println("數組中的所有值得合為:"+sum); //列印結果
}
}
---------------------------------------------------------------
其實二維數組的操作秘訣就是兩個for循環套起來用,這樣就很簡單了。
⑵ C語言中的二維數組的賦值,輸入輸出怎麼用
代碼,實現先輸入二維數組的行數m和列數n,並再輸入m*n個整型數據存到動態二維數組中。最後輸出所有二維數組的元素值。
int main()
{
int**p;//定義二維指針。
int m,n;//行數和列數。
int i,j;
scanf("%d%d",&m,&n);//輸入行數和列數。
if(m<=0||n<=0)return-1;//行數或列數非法。
p=(int**)malloc(sizeof(int*)*m);//申請一組一維指針空間。
for(i=0;i<m;i++)
p<i>=(int*)malloc(sizeof(int)*n);//對於每個一維指針,申請一行數據的空間。
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&p<i>[j]);//輸入第i行第j列的數據。其中&p<i>[j]也可以寫作p<i>+j或者是*(p+i)+j.功能相同。
printf("輸入的數組為%d行%d列: ",m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)//這個循環可以輸出一行元素。
printf("%d",p<i>[j]);//輸出i行j列的元素。
printf(" ");//每行輸入結束加換行符。
}
//釋放內存
for(i=0;i<m;i++)
free(p<i>);
free(p);
return 0;
}
(2)C語言二維數組的用法擴展閱讀:
函數:free
功能:與malloc()函數配對使用,釋放malloc函數申請的動態內存。(另:對於free(p)這句語句,如果p是NULL指針,那麼free對p無論操作多少次都不會出問題。如果p不是NULL指針,那麼free對p連續操作兩次就會導致程序運行錯誤。)
用法;void free(void*ptr);
程序例:
C/C++代碼如下:
#include<string.h>
#include<stdio.h>
#include<alloc.h>//or#include<malloc.h>
int main(void)
{
char*str;
/*allocate memory for string*/
str=(char*)malloc(10);
/*"Hello"to string*/
strcpy(str,"Hello");
/*display string*/
printf("String is%s ",str);
/*free memory*/
free(str);
str=NULL;
return 0;
}
⑶ c語言中二維數組如何使用
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inti,j,n=1;
inta[15][15];
//賦值
for(j=0;j<15;j++)
{
for(i=0;i<15;i++)
{
a[j][i]=n;
n++;
}
}
//輸出顯示
for(j=0;j<15;j++)
{
for(i=0;i<15;i++)
{
printf("%3d",a[j][i]);//%3d,3表示3按三個字元對齊
}
printf(" ");//顯示完一行換行
}
return0;
}
⑷ c語言中的二維數組
C 語言中的多維數組(multidimensional array)其實就是元素為數組的數組。n 維數組的元素是 n-1 維數組。例如,二維數組的每個元素都是一維數組,一維數組的元素當然就不是數組了。
多維數組聲明時,每個維度用一對方括弧來表示:char screen[10][40][80]; // 一個三維數組
數組 screen 包含 10 個元素,從 screen[0] 到 screen[9]。每個元素又是一個二維數組,它有 40 個元素,這 40 個元素均是一維數組,然後每個一維數組內都有 80 個字元。整體來說,screen 數組有 32000(10×40×80)個 char 類型元素。
想要獲取該三維數組 screen 內的某個 char 元素,必須指定 3 個索引值。例如,下面的語句把字元Z寫入該數組的最後一個元素位置:screen[9][39][79] = 'Z';
⑸ C語言 二維數組的使用
實際上是數據的一種組織方式,你可以想像成: 二維數組:行x列的長方形 三位數組:長x寬x高 的長方體 在c語言中,數組的意義,就是讓數組的名字可以當作指針來使用,這樣就能很方便的定位數據。 比如你有一個數組arry[300][300][300] 那麼他能存儲300*300*300=27000000個數據,如果要移動指針,那麼非常浪費,你需要移動27000000次才能移動到最後,而用數組的名字*(arry[300][300]++)只要300次就可以移動到最後一個數據。 當然數組和指針不僅僅是這個用途,還有更多精妙的用法等你靈光一現。
⑹ c語言中如何引用二維數組
數組的4種聲明方式:
1.先聲明再初始化
例如:
//1.聲明
int[] nums;
//初始化
nums = new int[5];
2.聲明並初始化
例如:
//2.聲明、初始化
int[] nums = new int[10];
3.創建數組同時賦值
例如:
//3.創建數組同時賦值
String[] names=new String[]{"大名","小米","夏雨荷"};
int[] ages=new int[]{21,22,21,56,13};
for (int i = 0;i < names.length;i++){
System.out.prinrln(names[i]);
}
for (int i = 0;i < ages.length;i++){
System.out.prinrln(ages[i]);
}
4.創建同時賦值,簡寫,不能寫成兩條語句
例如:
//4.創建同時賦值,簡寫,不能寫成兩條語句
String[] cities = {"上海","北京"};
(6)C語言二維數組的用法擴展閱讀:
數組(Array)是有序的元素序列。若將有限個類型相同的變數的集合命名,那麼這個名稱為數組名。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。用於區分數組的各個元素的數字編號稱為下標。數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式。 這些有序排列的同類數據元素的集合稱為數組。
數組是用於儲存多個相同類型數據的集合。
在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。
⑺ c語言二維數組的運用
#include<stdio.h>
#define MAX 100
#define LEN 80
main()
{
char text[MAX][LEN];
register int i,j,t;
for(t=0;t<MAX;t++)
{
printf("%d:",t);
gets(text[t]); /* 由於 text 定義為二維數組, 所以該循環體的作用就是:循環從鍵盤輸入 MAX-1 次字元串,並存入 text[t] 中,然後 t 依次遞增 1 */
if(!text[t][0]) /* 該語句用於判斷字元串是否到結尾?,如果到結尾了,即:text[t][0] = '\0',表示只輸入了一個回車符,則退出循環 */
break;
}
for(i=0;i<t;i++)
{
for(j=0;text[i][j];j++)
{
putchar(text[i][j]); /* 顯示 text 二維數組中的字元 */
putchar('\n');
}
}
}
⑻ c語言中什麼是二維數組
二維數組的定義
二維數組定義的一般形式是:
類型說明符 數組名[常量表達式1][常量表達式2]
其中常量表達式1表示第一維下標的長度,常量表達式2 表示第二維下標的長度。例如:int a[3][4];
說明了一個三行四列的數組,數組名為a,其下標變數的類型為整型。該數組的下標變數共有3×4個,即:
a[0][0], a[0][1], a[0][2], a[0][3]
a[1][0], a[1][1], a[1][2], a[1][3]
a[2][0], a[2][1], a[2][2], a[2][3]
二維數組在概念上是二維的,即是說其下標在兩個方向上變化,下標變數在數組中的位置也處於一個平面之中,而不是象一維數組只是一個向量。但是,實際的硬體存儲器卻是連續編址的,也就是說存儲器單元是按一維線性排列的。如何在一維存儲器中存放二維數組,可有兩種方式:一種是按行排列, 即放完一行之後順次放入第二行。另一種是按列排列, 即放完一列之後再順次放入第二列。
在C語言中,二維數組是按行排列的。即,先存放a[0]行,再存放a[1]行,最後存放a[2]行。每行中有四個元素也是依次存放。由於數組a說明為int類型,該類型占兩個位元組的內存空間,所以每個元素均佔有兩個位元組。
⑼ c語言二維數組
例如對整型二維數組a[3][2]賦值方法一:在定義的同時賦值 int a[3][2]={0};//所有數組元素均為0 方法二: int a[3][2]={1,2,3,4,5,6};//常規的賦值方法方法三: int a[3][2]={{1,2},{3,4},{5,6}};//分行的賦值方法方法四: int a[3][2]={{1,2},{0},{3}};//部分賦值方法,第一行元素的值分別為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]); 希望對你有所幫助。
⑽ C語言二維數組定義是什麼,然後int a[1][2]是代表什麼意思怎麼用這個二維數組
C語言二維數組定義的一般形式是:類型說明符 數組名[常量表達式1][常量表達式2]
int a[1][2]的意思是,定義了一個int類型的,數組名為a的,具有1行2列的數組
你可以把這個二維數組想像成一個表格,這個表格有1行2列,每個格子中可以放入一個int型數據。
數組使用就是用數組下標來訪問數組中的元素,比如a[0][1]=5,就是把第1行的第2個元素賦值為5。