注册 登录
编程论坛 C++教室

大神请进,求教,C++数组如何使数组元素个数可由用户指定。

daniel48 发布于 2012-12-30 18:13, 561 次点击
比如说
int a[n]={0};
n是由用户输入的。
int n=0;
cin>>n;
int a[n]={0};
好像这样不行。
10 回复
#2
rjsp2012-12-30 18:26
用vecter
#3
daniel482012-12-30 18:31
回复 2楼 rjsp
额,能详细点么。。。。我是新手、。。。。
#4
额外覆盖2012-12-30 20:45
int *a,n;
cin>>n;
a=new int(n);//需要不同类型的数组就改变int为相应类型;
#5
张海锋2012-12-30 22:42
你这里是不行的啊啊因为你输入的n是一个变量来的啊,你应该定义一个常变量,这样子系统才能找到值
#6
rjsp2012-12-31 11:06
回复 3楼 daniel48
#include <vector>
#include <iostream>

size_t n;
std::cin >> n;
std::vector a( n );
#7
lz10919149992012-12-31 19:28
以下是引用额外覆盖在2012-12-30 20:45:20的发言:

int *a,n;
cin>>n;
a=new int(n);//需要不同类型的数组就改变int为相应类型;

a=new int[n];
#8
额外覆盖2012-12-31 23:17
回复 7楼 lz1091914999
我错了,老大,原谅我吧!
#9
周佳峰2013-01-01 18:27
定义一个大的数组,然后在里面取一部分输入,但这样可能有点浪费空间。。。。。
#10
不玩虚的2013-01-01 19:31
int *a,n,**b;//*a是指针,**b是指向指针的指针
cin>>n;
a=new int [n];//这是以为数组的分配内存
b=new int * [n];//是指向指针的指针
for(int i=0;i<n;i++)
b[i]=new int [n];//二维数组的分配内存b[n][n],想要b[m][n],前面再定义个int m;cin>>m。b=new int *[n];这句改为b=new int *[m];就可以
指针是取地址,即取首地址。
表示新学的,尼玛的大一我指针没学好,坑爹啊
#11
liqingqinger2013-01-03 14:21
const int n=由你自己确定的  
好吧 本屌丝乜是大一的 ;;
或者在头文件那里加 #define n 个数;
1