对于不知道数组长度,需要自己输入,该怎么定义数组?

如果不知道数组长度,需要自己输入一个数组长度,那么数组初始化怎么定义,,,
例如: 输入N个数,冒泡排序,
输入   N   ;
输入   N个 数(数组中的下标  0-(N-1) )
输出   排序后的内容

(各位大神们,求告知,就是不知道怎么初始化数组)

不胜感激!!!1 
全部评论
用集合ArrayList
点赞 回复 分享
发布于 2016-09-29 15:24
各位走过路过的大牛们,求告知,谢谢,这样的问题现在编程用的太普遍了  ,实在不知道怎么初始化数组
点赞 回复 分享
发布于 2016-09-29 15:23
c语言就用指针加malloc
点赞 回复 分享
发布于 2016-09-29 15:26
1.ACM里面的做法 一般ACM的题目里会给出数据范围,根据该范围在全局区开辟一个数组: int num[1000]; 然后程序中: cin>>n; for(int i=0;i<n;i++) cin>>num[i]; ACM里面比较注重效率,所以静态分配内存,也可以动态分配内存,需要多少空间就分配多少。 vector<int> num; cin>>n; num.assign(n,0); for(int i=0;i<n;i++) cin>>num[i]; 想一般笔试使用第二种就可以了!
点赞 回复 分享
发布于 2016-09-29 15:33
c的话malloc+memset
点赞 回复 分享
发布于 2016-09-29 16:59
cpp vector,虽然效率会差一些
点赞 回复 分享
发布于 2016-09-29 17:03
没有长度就 gets 直接读一行字符串
点赞 回复 分享
发布于 2016-09-29 17:32
c++的话vector就好。 或者你可以用指针new,只不过这个很烦,而且容易错,而且忘记释放会内存泄露,而且没必要。 最推荐的还是竞赛式的,int a[100000],一般来说会实现给出数据大小的,不要觉得开的大浪费内存了,无所谓的,做题重要的是AC,是快。如果你有某种强迫症,就是不想浪费内存,你可以用N的大小初始化vector。比如vector<int> vec(N, 0); 就声明了一个大小为N的vector,所有元素都置为0。但是这个我还是不推荐。 总结,就以题目中给出的数据大小的最大值(多一点)直接声明数组:int a[MAX]; 然后你还可以了解一下memset这种东西,头文件是<string.h>。 多写写就会了~
点赞 回复 分享
发布于 2016-09-29 17:54
getline,自己解析
点赞 回复 分享
发布于 2016-09-29 18:40
C语言 int n; scanf("%d", &n); int arr[n]; c99标准就支持了变量长度数组了吧。 C++直接用vector array都行
点赞 回复 分享
发布于 2016-09-29 20:16

相关推荐

10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务