c语言怎么输入任意长度的一个数组
发布网友
发布时间:2022-04-23 13:40
我来回答
共3个回答
热心网友
时间:2023-10-16 04:45
首先 严格来说 不可能出现任意长度。 内存是有限的 超出一定长度后,不可能存的下,虽然这个值可能是超级大的,但总有限度。
其次,所谓的任意长度,其实就是可变长数组。
那么,在事先不知道数组规模下,就要靠输入,来确定数组大小了。
重点在于,要开辟多大的数组来存
一般有这么几种情况
1 直接开一个足够大的。 比如 虽然不知道有多大,但最大不超过1000个,那就可以直接开个1000元素的数组。
2 动态分配, 使用malloc动态分配内存。
当出现可能的不够情况,用realloc重新分配。
热心网友
时间:2023-10-16 04:45
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=0,n=1;
int *a;
a=malloc(n*sizeof(int));
do
{
scanf("%d",&a[i++]);
realloc(a,++n*sizeof(int));
}while(getchar(a[i-1])!='\n');
for (i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("\n");
}
热心网友
时间:2023-10-16 04:46
办法不少,正宗的是用链表。
c语言怎么输入任意长度的一个数组
1 直接开一个足够大的。 比如 虽然不知道有多大,但最大不超过1000个,那就可以直接开个1000元素的数组。2 动态分配, 使用malloc动态分配内存。当出现可能的不够情况,用realloc重新分配。
c语言如何输入任意长度的字符串数组
所以“任意长度”应当理解为在一个很大的空间之内没有限制地输入字符串而不用事先确定长度。鉴于这种理解,可以定义一个输入函数,先动态申请一个较大的空间,直接向其内输入字符串;输入完毕后检测其长度,再按实际需要申请一个合适大小的空间,把刚才输入的字符串拷贝到这个合适大小的空间里,再把原先申...
C语言如何输入一个数组
1、输入数组需要使用指针获取地址后,就能对得到的数组就行操作了。首先打开DEV C++软件,新建一个空白的C语言文件:2、输入程序的源码,先定义一个整型数组“a[5]”,采用scanf语句输入数组中的每个元素,这里使用指针来对输入的数字进行访问,要先给输入的每一个数字给予它的地址,便于访问,最后拿得到...
c语言中如何自定义数组长度
&size); //输入自定义的数组长度int *pstart = (int *)malloc(sizeof(int) *size);if (pstart==0) {printf("不能分配内存\n");return 0;}memset(pstart, 0x00,
c语言 一维数组 长度自定的 输入数组数组的长度 并且输入n个数。
int i,n;float a[100];printf("please input the length of array A:\n");scanf("%d",&n);printf("please input the %d numbers:\n",n);for(i=0;i<n;i++){ scanf("%f",&a[i]);} printf("the numbers are:\n");for(i=0;i<n;i++){ printf("%g\n",a[i]);} getc...
在C语言中如何定义并输入任意个数据
用一个特定的数字表示结束,比如0, 当用户输入0 的时候就停止,可以参考下面的代码:int a[100],i, count;i =0;while(scanf("%d", &a[i]) != EOF) { if (a[i] == 0) break; // 用户输入了0,表示结束。i++;} count = i-1;...
C语言键盘上输入一个数组
您好,可参照下面代码,望采纳!!!include<stdion.h> void main() { int arr[10];int i;//直接逆序输入for (i = 9; i >= 0; i--){scanf("%d", &arr[i]);}for (i = 0; i < 10; i++){printf("%d ", a[i]);}printf("\n");} ...
C语言怎么定义一个二维数组可以使每行的输入长度任意
1、使用动态数组可以实现变长度数组。建动态数组,其他就像数组一样使用就行了。2、例程:int row=0; //函数int col=0; //列数int i;int ** arr=NULL; //下面假设存储的数据类型为intprintf(“请输入二维数组的行数和列数:”);scanf("%d%d",&row,&col);//要不要加判断输入...
c语言,怎么写一个任意长度(1000位以内)的整数?用数组的话要怎么求出它...
直接使用strlen就可以了,比如下面 include <stdio.h>#include <string.h>int main(){ char str[1010]; gets(str); printf("%d\n", strlen(str)); return 0;}
C语言,在函数里要输入一个数组怎么办
int fun(int *p, int size){ //p为数组的首地址 //size为数组的大小 //传递进去后可以像操作a一样用下标操作p //如p[0], p[4]...} 传递参数给函数可以这样写:fun(a, 5);若是多维数组,则第一维大小不给出,只指定后面的维数大小,如:定义有int a[5][2];则这样定义函数:int fun(...