数组问题
#include<iostream>using namespace std;
int main()
{ int n;
int a;
int b[a];
cin>>a;
for(int i=0;i<a;i++)
{
b[i]=n;
cin>>n;
cout<<b[i]<<endl;
}
return 0;
}
定义数组的时候一定要说明大小吗?
为什么我这样不行啊?我想要上面程序的效果能有解决的方法啊?
int b[a]; //其实这一部分还有语法问题,下面说 cin>>a;
b[i]=n; cin>>n;这两块,程序对a、b变量的使用必须在输入之后,否则,程序怎么可能在你还没指定a、b的值之前,就未卜先知,明白你想做什么?
int b[a];这一块,中括号内要么是一个确定的数字,要么是一个常量,不可以是变量。
int b[100];和
const int a = 100; int b[a];都是合法的,而楼主的代码就是不合法的。
int a; cin >> a; int *b = new int[a];在程序退出之前,记得:
delete [] b;
int a = 3; int b[a]; a = 5;这样写,数组的长度也不会由于你后来改了 a 的值而从 3 变成 5。
int b[a] cin >> a;和
b[i] = n; cin >> n;这样的语句,从逻辑上讲都是毫无意义的。