c语言如何定义一个数量未定的数组 a[n]呢,n未知,得等用户输入n的值来决定。可以不用指针吗

作者&投稿:喻东 (若有异议请与网页底部的电邮联系)
c语言如何定义未知个数的数组~

用malloc函数。。。。
比如你要申请int型的未知个数数组。可以以下程序
#include
#include

main()
{
int *p;
int n;
printf("请输入录入个数N:
");
scanf("%d",&n);
p = (int *)malloc(n*sizeof(int));
//然后把*p当作数组指针用就可以了。。~~~~
}

直接用数组名字调用即可。 如: int a[10]={0,1,2,3,4,5,6,7,8,9];//定义一个数组变量并赋初值 你可以用a[3]、a[8]分别调用第3个元素(2)和第8个元素(7),如: int b;//定义一个整形变量 你可以用: b=a[3]+a[8]; 执行上面以后b的值会成为:9
c语言,数组
直接用数组名字调用即可。 如: int a[10]={0,1,2,3,4,5,6,7,8,9];//定义一个数组变量并赋初值 你可以用a[3]、a[8]分别调用第3个元素(2)和第8个元素(7),如: int b;//定义一个整形变量 你可以用: b=a[3]+a[8]; 执行上面以后b的值会成为:9

可变长数组可以简单的实现,但是可变长数组是在C99后才加入标准的,vc6不支持C99

可以使用动态内存分配实现

int n,*p;
scanf("%d",&n);
p=(int *)malloc(sizeof(int)*n);
p[0]=...;
p[1]=...;
...


C99以前的标准时不可以的。

将数组a[n]放在函数里


c语言怎么定义一个数字的数值范围?
逻辑判断中确定某数在某个范围内。比如判断数c在[a,b]区间内可以写作 (a<=c)&& (c <= b)2 使计算结果处于某个范围内。比如计算时间时,当前时间为n点,经过m小时后是几点,由于时间仅取值在0点到23点,所以对数值范围需要做约束。对于此可以用模除(%)来限定。(n+m)%24 其它关于数值范围...

c语言中如何输出或者定义一个长度为1000的数???
定义一个数组 main(){ char a[1000];\/\/定义长度为1000的数组 int num;for(num=0;num<1000;num++)\/\/将1000个数存入数组 scanf(%c,&a[num]);for(num=0;num<1000;num=num++)printf(%c,&a[num]);\/\/输出 }

C语言怎么定义一个二进制数
C语言中没有 “二进制数”这种类型,所以没办法直接定义;但可以直接定义16进制数。例:int main(){ int a;scanf("%p",&a);\/\/16进制数输入%p是输入一个十六进制的数scanf("%llx",&a);也可以输入十六进制并且比较正规 printf("%d",a);\/\/十进制输出%d是输出一个十进制的数 printf("0x%x",...

C语言中如何定义一个从1~7的随机数。
在C语言中,是如何取得这个随机数的?一个语句:rand();它的作用就是随机取0到RAND_MAX之间的任何数。ANSI标准指出,RAND_MAX值的范围到少是32767,也就是双字节整数的最大值。 下面我们用一个例子来取得从1到6的随机整数:include <stdio.h> include <stdlib.h> main(){ int i;for(i=1...

c语言中怎样定义一个数的范围
定义变量时不能定义范围,只能给出确定的值或者先不进行初始化。自定义变量范围:让数组索引变量i在自己指定的范围内(比如0~32)循环,只需对i进行33求余运算。比如想让i在0~a内循环,那么就是for(i=a+1;i\/(a+1);i++)。include "stdio.h"int main(int argc, char* argv[]) { unsigned...

在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语言中怎么实现定义一个数,然后能打出定义这个数前所有整数?
?先定义一个int n,然后scanf输入 再for(int i=0;i<n;i++) 里面printf(...,i)就行了 如果基础的输入输出不会建议去菜鸟学一下 include <stdio.h> int main(){ int n;scanf("%d",&n);for(int i=0;i<n;i++) printf("%d",i);return 0;} ...

c语言中怎样定义一个数的范围
很简单的:int、 float、 double等定义数,总是有范围的啊,比如:int的范围在-32768-32767之间。还有专门的枚举类型---enum ,定义后变量取值就在指定范围内,格式如下:enum fg{1,2,3,5,4,6};enum fg i;这样i变量就被限制在了上面数值之间。

C语言中如何定义一个十一位数
如只是使用基础变量存储十一位数。可以使用longlong型(打印格式%I64d) 。或者使用double型(打印格式%lf)。

如何用c语言实现:定义一个1~100的int数组,随机从里边选择十个数字?
printf("输入元素个数");scanf("%d",&m);for(i = 0; i<m; ++i)scanf("%d",&a[i]);p=m;} void display(int *a, int *p){ int i;for(i = 0; i < *p; ++i)printf("%5d",a[i]);printf("\\n");} void main( ){ int a[10],n=0,m;do{ printf("1,输入数组\\n...

梁河县13192889304: C语言怎么输入不确定个数的数组 -
乐正待皮肤: 这种技术叫做动态数组,C语言中的实现方法如下,涉及内存的申请等: #include <stdio.h> #include <stdlib.h> int main() { int n1,i; int *array; puts("输入你需要的数组的长度:"); scanf("%d",&n1); array=(int*)malloc(n1*sizeof(int)); for(i=0;i<n1;i++) { array[i]=i+1; printf("%d\t",array[i]); } free(array);//释放你申请的内存 return 0; }

梁河县13192889304: c语言中如何给不确定大小的数组定义并使用? -
乐正待皮肤: C语言中没有明确的“动态数组”(也就是不确定大小的数组)这个概念, 只能用动态内存分配来实现,我给你一个思路: 创建数组——用动态分配分配一个指定大小的内存(数组) 销毁数组——释放动态分配内存 访问元素——通过内存指针间接引用 增加元素——再分配一块新内存区域(大小为增加后的大小),把久区域的元素数据复制到新的内存区,销毁旧的内存区域 减少元素——与增加元素类似 具体的实现方法建议你多参考一下关于函数malloc(内存分配函数)的使用介绍其实真的很麻烦,如果实在完成不了的话就学C++吧,C++创建动态数组比较方便

梁河县13192889304: C语言中如何将未知个数的数存放在一个数组中? -
乐正待皮肤: 在C语言中数组的定义必须指明维数,即使没有指明维数,也必须进行初始化,编译器通过初始化列表中的元素个数来确定数组的维数,比如下面的代码: int a[] = {1,2,3}; 虽然没有指明数组的维数,但是编译知道数组a的维数是3(只有三个元...

梁河县13192889304: C语言定义元素不确定的数组 -
乐正待皮肤: 用malloc函数动态申请一、二维数组 定义一维数组:#include "stdio.h" main() { int n; int *p; printf("请输入数组元素个数n:\n"); scanf("%d",&n); p=(int *)malloc(sizeof(int)*n); printf("请输入数组:\n"); for(i=0;i<n;i++) scanf("%d",&p...

梁河县13192889304: 怎么用c语言设定一个不确定的数组? -
乐正待皮肤: include<stdio.h> main() { int i,c;int a[10]; int b[]; for(i=0;i<10;i++) {c=a[i]%2; if(c==0) { b[i]=a[i]; } } } 大致就是这个意思,但是我很久没用C了 语法可能有错

梁河县13192889304: 如何定义未知大小的数组 -
乐正待皮肤: 在C语言中可用动态数组实现,如: int n; double *a;//a为指针变量,在此相当于数组名 n=100; a=(double*)maIloc(n*sizeof(double)); //为数组a分配n个double大小空间 //其后就可将a作为double型数组来用,如 a[2]=6.423;

梁河县13192889304: c语言 怎么声明一个不确定大小的数组 -
乐正待皮肤: C没有提供现成的办法.不过我在实际工作中做过,用起来挺爽的.声明一个所需类型的指针p,用malloc函数申请一个较小的空间(例如10个元素)并将首地址赋给p就构成了以p为首地址的一维数组;然后向数组输入数据;输入满后还需输入时,用上述同样办法另申请一个以指针q为首地址的较大的数组(例如20个元素).把p的数据全拷贝到q数组,把p指向的空间释放并让p指向q,继续输入……如此反复.

梁河县13192889304: c语言定义一个不知道个数的一维数组 -
乐正待皮肤: 这个是可以的,不知你们是否学过动态内存开辟啊! 即可以定义一个指针通过malloc 或者 calloc 来通过自己的输入来确定类存大小,如果还没学,建议按顺序后面会学到的啊!

梁河县13192889304: 在C语言中如何定义一个不知道位数的一维数组 求代码 -
乐正待皮肤: 我的理解或许和你的原意有所偏差.如果你的意思是创建一个知道内容的数组,但不指定它的大小,那语法是这样:1 intarr[] = {1, 2, 3, 4, 5}; // 等同于 int arr[5] = {1, 2, 3, 4, 5}; 如果你的意思是“可变大小”,或者在运行时才知道所需大小而编译时不知道,那要在堆上开辟内存:12345 intn; scanf("&d", &n); // 运行时读入元素个数n int*arr = (int*)malloc(sizeof(int) * n); // 申请一个大小为n的int数组.... // 使用arr free(arr); // 用完后记得释放内存

梁河县13192889304: 在C语言里面,如何重定义一个不确定的数组? -
乐正待皮肤: 你可以用动态分配内存的方法, 比如你要建立一个字符串数组: char *str; str=(char *)malloc(n); n是变量,可以在确定了变量的值后再用以上代码分配内存, 而str字符串可以以一般数组的用法使用,比如 *str="hello";的话 str[1]='l';最后别忘了释放内存 free(str);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网