當前位置:首頁 » 服務存儲 » 數組的數據按照順序存儲
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

數組的數據按照順序存儲

發布時間: 2022-05-07 23:46:39

『壹』 (c數據結構)數組的順序存儲與實現,如何給數組一次輸入全部數據.如scanf函數

//這個題有兩個方法,第一個是手動賦值,第二個是自動賦值。
//復制直接可用,但我覺得,你還是自已動手寫一下比較好。
//這樣才能了解結構體。
//第一個手動賦值
#include<stdio.h>
struct stu
{
char base[5];
};
int main()
{
stu array;
int i; //定義一個整形,用於 循環
printf("請手動給結構體數組賦值\n");
for(i=1;i<=5;i++)
{
scanf("%d",&array.base[i]);//每次循環,隨著i的值不斷增加,使數組遞增
}
printf("數組內容如下\n");
for(i=1;i<=5;i++)
{
printf("array.base[%d]=%d\n",i,array.base[i]);
}
return 0;
}
//這個題有兩個方法,第一個是手動賦值,第二個是自動賦值。
//第二個自動賦值
#include<stdio.h>
struct stu
{
char base[5];
};
int main()
{
stu array;
int i; //定義一個整形,用於 循環
printf("這個是自動賦值\n");
for(i=1;i<=5;i++)
{
array.base[i]=i;//每次循環,隨著i的值不斷增加,使數組遞增
}
printf("數組內容如下\n");
for(i=1;i<=5;i++)
{
printf("array.base[%d]=%d\n",i,array.base[i]);
}
return 0;
}

『貳』 c語言數組存儲形式是怎麼根據的如

c語言中沒有字元串的儲存形式像
string
arr;是c++中才出現的,c語言中的字元串是儲存在數組中的而且以'\0'為結束標志

『叄』 數組是按照什麼數據結構存儲的

順序存儲結構,因為數組在空間上是連續的

『肆』 在C中,多維數組元素的存儲順序是按照什麼原則進行

例如二維數組,int digi[2][2],可以理解為此數組有二行二列,即int digi[行][列]
排列順序:排完第一行,再排第二行,則有
第一行:
digi[0][0]
digi[0][1]
第二行:
digi[1][0]
digi[1][1]

可以理解成,行在前面較列(後面)大,列排序由小到大,排完第一行在排第二行,依此類推。
……又例如三維數組,int Iarr[2][2][2],可以理解為,2排2行2列,(比喻成班級成員可分為,小組,組,一班)……
顯然排序,當然第一排排完後再到第二排最後到第三排,但是排內部又有行,當然第一行排完後再到第二……,列同樣如此,
簡單理解:排>行>列,(大到小)
所以上面排序為:
第一排
第一行
Iarr[0][0][0]第一列
Iarr[0][0][1]第二列
第二行
Iarr[0][1][0]第一列
Iarr[0] [1][1]第二列
……
第二排
第一行
Iarr[1][0][0]第一列
Iarr[1][0][1]第二列
第二行
Iarr[1][1][0]第一列
Iarr[1][1][1]第二列

『伍』 n維數組可以用順序表存儲嗎

n維數組可以用順序表存儲的。只要確定這個n維數組遍歷時各個維度的遍歷順序,作好約定以後,按此順序遍歷n維數組的全部元素,將這個序列存儲到順序表中即可。只要知道n維數組各維的大小,就可以由順序表還原這個n維數組了。

『陸』 在C語言中,二維數組元素在內存中的存放順序是 A按行存放 B按列存放 C由用戶自己定義 D由編譯器決定

c語言中,二維數組元素在內存中是按行存放的。

二維數組本質上是以數組作為數組元素的數組,即「數組的數組」,類型說明符 數組名[常量表達式][常量表達式]。二維數組在概念上是二維的,即是說其下標在兩個方向上變化, 下標變數在數組中的位置也處於一個平面之中, 而不是象一維數組只是一個向量。

但是,實際的硬體存儲器卻是連續編址的, 也就是說存儲器單元是按一維線性排列的。如何在一維存儲器中存放二維數組,可有兩種方式:一種是按行排列, 即放完一行之後順次放入第二行。另一種是按列排列, 即放完一列之後再順次放入第二列。在C語言中,二維數組是按行排列的。

例如:float a[3][4],b[5][10]; 定義a為3*4(3行4列)的數組,b為5*10(5行10列)的數組。注意,不能寫成 float a[3,4],b[5,10]; 具體可以表示:a[3][4]={ {1,2,3,4},{5,6,7,8},{9,10,11,12} }

(6)數組的數據按照順序存儲擴展閱讀:

1、表示方法:

數組元素也是一種變數, 其標識方法為數組名後跟一個下標。下標表示了元素在數組中的順序號。數組元素的一般形式為:數組名[下標] 其中的下標只能為整型常量或整型表達式。如為小數時,C編譯將自動取整。例如,a[5],a[i+j],a[i++]都是合法的數組元素。數組元素通常也稱為下標變數。必須先定義數組, 才能使用下標變數。

2、賦值方法:

初始化賦值的一般形式為:static類型說明符數組名[常量表達式]={值,值……值}; 其中static表示是靜態存儲類型, C語言規定只有靜態存儲數組和外部存儲數組才可作初始化賦值。在{ }中的各數據值即為各元素的初值, 各值之間用逗號間隔。例如:static int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 相當於a[0]=0;a[1]=1...a[9]=9;

3、使用規則:

一、數組的類型實際上是指數組元素的取值類型。對於同一個數組,其所有元素的數據類型都是相同的。

二、數組名的書寫規則應符合標識符的書寫規定。

三、數組名不能與其它變數名相同。

四、可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。

五、只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;(請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。)

六、若不給可初始化的數組賦初值,則全部元素均為0值。

七、假如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5}; 可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。

參考資料來源:網路-二維數組

網路-數組

『柒』 程序設計語言中的數組一般是順序存儲結構,因此,利用數組只能處理線性結構

不對,數組本身的存儲結構是線性的,就是說它是連續存儲的,但是數組中元素可以存儲指針,就是指針型數組,它就可以利用數組處理非線性的數據。比如將一個鏈表每個結點的地址存入數組,那樣訪問數組,就是處理非線性的數據了

『捌』 數組的定義中,元素按照一定順序存儲,如何理解這個順序

數組的定義中,元素按照一定順序存儲。這是因為比如說二維數組的時候,有的編譯系統是按照行優先存儲,而有的編譯系統是按照列優先存儲,但是有一點,所有的數組元素都是連著存儲在一起的。

『玖』 在JAVA中,數組中的元素應按照什麼順序進行存儲和編號

private final int LEN = 8; //數組的默認大小
private Strategy strategy; //數據元素比較策略

private int size; //線性表中數據元素的個數

private Object[] elements; //數據元素數組

public ListArray() {

this(new DefaultStrategy());
}

public ListArray(Strategy strategy){

this.strategy = strategy;
size = 0;

elements = new Object[LEN];

}

//返回線性表的大小,即數據元素的個數。

public int getSize() {

return size;
}

//如果線性表為空返回true,否則返回false。

public boolean isEmpty() {

return size==0;
}

//判斷線性表是否包含數據元素e

public boolean contains(Object e) {

for (int i=0; i
if (strategy.equal(e,elements[i])) return true;

return false;

}

//返回數據元素e在線性表中的序號

public int indexOf(Object e) {

for (int i=0; i
if (strategy.equal(e,elements[i])) return i;

return -1;

}

//將數據元素e插入到線性表中i號位置

public void insert(int i, Object e) throws OutOfBoundaryException {

if (i<0||i>size)
throw new OutOfBoundaryException("錯誤,指定的插入序號越界。");

if (size >= elements.length)

expandSpace();

for (int j=size; j>i; j--)

elements[j] = elements[j-1];

elements[i] = e;

size++;

return;

}

private void expandSpace(){

Object[] a = new Object[elements.length*2];
for (int i=0; i

a[i] = elements[i];

elements = a;

}

//將數據元素e插入到元素obj之前

public boolean insertBefore(Object obj, Object e) {

int i = indexOf(obj);
if (i<0) return false;

insert(i,e);

return true;

}

//將數據元素e插入到元素obj之後
public boolean insertAfter(Object obj, Object e) {

int i = indexOf(obj);

if (i<0) return false;

insert(i+1,e);

return true;

}

//刪除線性表中序號為i的元素,並返回之

public Object remove(int i) throws OutOfBoundaryException {
if (i<0||i>=size)

throw new OutOfBoundaryException("錯誤,指定的刪除序號越界。");

Object obj = elements[i];

for (int j=i; j
elements[j] = elements[j+1];

elements[--size] = null;

return obj;

}

//刪除線性表中第一個與e相同的元素

public boolean remove(Object e) {

int i = indexOf(e);
if (i<0) return false;

remove(i);

return true;

}

//替換線性表中序號為i的數據元素為e,返回原數據元素

public Object replace(int i, Object e) throws OutOfBoundaryException {

if (i<0||i>=size)
throw new OutOfBoundaryException("錯誤,指定的序號越界。");

Object obj = elements[i];

elements[i] = e;

return obj;

}

//返回線性表中序號為i的數據元素
public Object get(int i) throws OutOfBoundaryException {

if (i<0||i>=size)
throw new OutOfBoundaryException("錯誤,指定的序號越界。");

return elements[i];

}

}

『拾』 怎樣實現數組用順序表存儲

順序表 本身就是用數組來實現的
typedef struct node{
int data[20];
int length;
}seqlist,*pseqlist;

該順序表中包含一個數組成員和一個int型變數
將數組內容復制給seqlist.data[i]即可