如果输入数据组数有用户输入动态指定,
例如这个问题
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
其余不变,可是程序运行时就会出现错误,
////////////////////////////////////////////请问大家是什么原因啊?
例如这个问题
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
其余不变,可是程序运行时就会出现错误,
////////////////////////////////////////////请问大家是什么原因啊?
解决方案 »
- 关于编译生成release版的问题?
- 基于对话框的应用程序,按下F1功能键之后出现“找不到D:\…\xxx.HLP。是否亲自查找该文件”,如何屏蔽掉它?
- 改学C#了,原来vc的书扔了浪费,想送给需要的朋友。《Visual C++ 6.0编程实例与技巧》
- 求助:怎样调用Win32 SDK提供的网络编程函数?~~~~
- 问一个很晕的问题
- 关于Word的VBA编程
- 用ATL写的COM难道比VB写的COM还要耗空间吗?
- _ConnectionPtr 的连接字符串,该怎么写,才通用 ??
- ???方法隐藏对话框不会闪烁.
- 在killtimer前未用settimer会有什么后果?
- SDI程序,请教!!(在线等候)
- new 分配内存有最大值吗?
int i,m;
clrscr();
cin>>m; //用户输入组数
if (m>0)
{
a = new long[m];
}
else
m = 0;for(i=0;i<m;i++)
{cin>>h;
a[i]=h;
}
for(i=0;i<m;i++)
{
plus(a[i]);
cout<<endl<<n<<endl;
n=1;
}if (a != 0)
delete [] a;