C语言中,如何利用数组输入不知道个数的若干数,
3个回答
展开全部
在数据结构里面,一般使用动态分配空间的方式,malloc首次分配和realloc重新分配更大空间。
你可以先malloc一个比较大点的空间,比如20个int的数组空间,当输入个数超过20时,realloc一片20+10的空间,也就是一次性增大10个int的空间,再输入到30个了,就再realloc一片30+10的空间。需要一个变量存贮当前最大空间,然后一个变量记录你输入了多少个数据。
你可以先malloc一个比较大点的空间,比如20个int的数组空间,当输入个数超过20时,realloc一片20+10的空间,也就是一次性增大10个int的空间,再输入到30个了,就再realloc一片30+10的空间。需要一个变量存贮当前最大空间,然后一个变量记录你输入了多少个数据。
追问
有没有能不用指针部分的知识解决啊?
追答
没有
若是在C++里面,可以使用vector等容器,可以实现动态数组
在标准C语言里面,不使用指针和动态分配,没有直接办法实现任意大小的数据存储。
使用固定大小的数组,都是假设待输入数据个数不会超过设定的范围,才好提前分配,这样也可能浪费空间,万一实际输入就1个成绩,就浪费了大部分空间了。
使用指针的话,还可以使用链表,之前说的分配连续空间其实是顺序表。
展开全部
{ int Len; int i,a[Len]; printf("输入数组长度: \\n"); scanf("您说的是这个意思吗? 那你把数组设置的足够大不就行了么?比如说int,lkEBhI
追问
额,不是不是,题目中事先没有给出输入数组长度的步骤,一开始就是输入数据,输完就结束了。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用数组写,把他的元素定义得足够大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询