C语言数组动态赋值

Python014

C语言数组动态赋值,第1张

输入整型数组,这样循环是可以的。

scanf输入格式没有指定,默认是空格分割。

也就是说,你要么输入一个数就回车,再输第二个。

要么连续输入多个数,用空格分割。

看看,你输入格式对不对。

你理解错了 这个代码你也写错了点 应该是for(i=0i<5i++) 少了个分号,初学者一定要仔细点

至于赋初值就自动初始化为0是对于在定义数组变量的时候赋初值,才自动初始化为0

比如:

int a[5]={1,2,}

这样的话 a[0]=1,a[2]=2,其他的才是0

scanf是不管你的数组有没有被初始化都要向输入输出设备要值的

这样明白了吧?如果你想动态赋初值的话 用new()与delete() 比较方便,这个C语言里是没有的 是在C++里的 我知道C语言也有这样的函数 很久没用C了 忘了 呵呵,还是C++比较好用,介意还是学C++好了,可以没有C语言基础

一定要存在data[0]里面吗看

可以循环赋值

void set(int data[50], int new_value)

{

int i

for(i = 49i >=1i --)

data[i] = data[i - 1]

data[0] = new_value

}

也可以整体复制

void set(int data[50], int new_value)

{

int i

memcpy(&data[1], &data[0], sizeof(int) * 49)

data[0] = new_value

}

效率更高的是用一个变量保存当前的位置,也就是新的不存在data[0]里面,而是动态改变

int index = 0

void set(int data[50], int new_value)

{

data[index++]=new_value

}

读取的时候把data[index]当做data[0]

任君选择