如果输入数据组数有用户输入动态指定,
例如这个问题
A题:回文数 【问题描述】    若一个数(首位不为0)从左到右读与从右到左读都是一样,这个数就叫做回文数,例如12521就是一个回文数。    给定一个正整数,把它的每一个位上的数字倒过来排列组成一个新数,然后与原数相加,如果是回文数则停止,如果不是,则重复这个操作,直到和为回文数为止。给定的数本身不为回文数。例如:87则有:STEP1: 87+78=165STEP2: 165+561=726STEP3: 726+627=1353STEP4: 1353+3531=4884编写一个程序,输入M(12<=M<=100),输出最少经过几步可以得到回文数。如果在8步以内(含8步)不可能得到回文数,则输出0。【输入】第1行一个正整数L,代表测试数据的组数。接下来L行每行一个整数M(12<=M<=100),M本身不为回文数;【输出】    输出L行,第i行对应输入数据的第i+1行,输出最少需要的步数;如果步数大于8,则输出0。【样例输入】3128789【样例输出】14
0
////////////////////////////////////////////////////////////////////
我写的main框架是
void main()
{ long h,a[10];
int i,m;
clrscr();
cin>>m;  //用户输入组数
for(i=1;i<=m;i++)
  {cin>>h;
   a[i]=h;
  }
for(i=1;i<=m;i++)
 { plus(a[i]);
   cout<<endl<<n<<endl;
   n=1;
 }}
 //////////////////////////////////////////////////////////
可是a[10] 显然浪费空间了
但如果改成指针, 我也试着将其改成long *a
其余不变,可是程序运行时就会出现错误,
////////////////////////////////////////////请问大家是什么原因啊?