当前位置:首页 » 服务存储 » 数组的数据按照顺序存储
扩展阅读
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]即可