怎么定义动态数组及赋值?动态数组是C的概念吗?

时间:2022-08-30 19:47:30
 例如:将123.12,123.23,456.12,789.20...一系列数赋予给数组 

即a[1]=123.12;a[2]=123.23;等等。 

这个用动态数组要怎么写?

10 个解决方案

#1


new

#2




#include "stdio.h"
#include "malloc.h"
void main()
{
printf("输入你要统计的数字的个数");
int n;//这个根据你自己需求
scanf("%d",&n);
double * a=(double*) malloc(sizeof(double)*n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
printf("%d",a[i]);
free(a);
return ;
}

#3


float *p;
int n;
p = malloc(sizeof(float)*n)
p[1]=123.12;
p[2]=123.23
...........

#4


C/C++不支持动态数组,楼上给的例子不能算数组

#5


C99 支持动态数组.

#include <stdio.h>

#define ARRAY_SIZE(_x)  (sizeof(_x)/sizeof(_x[0]))

int
main(void)
{
        int i, n;
        for (n = 1; n <= 5; n++)
        {
                int x[n];
                printf("n = %d, ARRAY_SIZE(x[n]) = %d\n",
                    n, (int)ARRAY_SIZE(x));
                for (i = 0; i < n; i++)
                        x[i] = i;
                for (i = 0; i < n; i++)
                        printf("x[%d] = %d\t", i, x[i]);
                printf("\n");
        }

        return 0;
}

#6


楼主的动态数组是什么意思?是说动态分配空间吗??用malloc

#7


c99支持可变长数组,严格说来,不能算动态数组。

#8


你的意思是数组的大小可增长是吗?具体的思路是这样的,比如第一次定义10各元素的array a[10],当数组中要保存的元素大与10时就定义b[20],把a[10]中的元素拷贝到b[20]中从10位开始存储新的元素。依次类推.这就是一种思维了,呵呵.与C++/C不支持直接创建可变数组这种行为,呵呵!    

#9


c++里不是有个resize可以重新申请数组大小的么

#10


晕,先弄清楚什么是动态数组再说吧

#1


new

#2




#include "stdio.h"
#include "malloc.h"
void main()
{
printf("输入你要统计的数字的个数");
int n;//这个根据你自己需求
scanf("%d",&n);
double * a=(double*) malloc(sizeof(double)*n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
printf("%d",a[i]);
free(a);
return ;
}

#3


float *p;
int n;
p = malloc(sizeof(float)*n)
p[1]=123.12;
p[2]=123.23
...........

#4


C/C++不支持动态数组,楼上给的例子不能算数组

#5


C99 支持动态数组.

#include <stdio.h>

#define ARRAY_SIZE(_x)  (sizeof(_x)/sizeof(_x[0]))

int
main(void)
{
        int i, n;
        for (n = 1; n <= 5; n++)
        {
                int x[n];
                printf("n = %d, ARRAY_SIZE(x[n]) = %d\n",
                    n, (int)ARRAY_SIZE(x));
                for (i = 0; i < n; i++)
                        x[i] = i;
                for (i = 0; i < n; i++)
                        printf("x[%d] = %d\t", i, x[i]);
                printf("\n");
        }

        return 0;
}

#6


楼主的动态数组是什么意思?是说动态分配空间吗??用malloc

#7


c99支持可变长数组,严格说来,不能算动态数组。

#8


你的意思是数组的大小可增长是吗?具体的思路是这样的,比如第一次定义10各元素的array a[10],当数组中要保存的元素大与10时就定义b[20],把a[10]中的元素拷贝到b[20]中从10位开始存储新的元素。依次类推.这就是一种思维了,呵呵.与C++/C不支持直接创建可变数组这种行为,呵呵!    

#9


c++里不是有个resize可以重新申请数组大小的么

#10


晕,先弄清楚什么是动态数组再说吧