c++问题一道,希望有简单写法,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:33:32
输入一个不大于5位数的数字,输出这个数字的位数,分别输出各个数位上的数字,再逆序输出这个数字。例如输入4571,则输出:4位数;4 5 7 1;1754。(这个能不能用数组做呢?)

#include <iostream.h>
#include <string.h>
void main()
{
char xz[255];
cout << "请输入一个不大于5位数的整数:";
cin >> xz;
char *p = xz;
while(*p)
{
if(*p < '0' || *p > '9')
{
cout << "输入的数字非法" << endl;
return;
}
p++;
}
if(strlen(xz) > 5)
{
cout << "大于5位数" << endl;
return;
}
cout << strlen(xz) << "位数";
p = xz;
while(*p)
{
cout << *p << " ";
p++;
}
cout << ";";
while(p >= xz)
{
cout << *p;
p--;
}
cout << endl;
}

能,可以先定义一个数组,然后把各位数字都分离出来。再按数组的元素输出就OK了!
郑州今迈网络部!
大致写一下:
int a=4571; int array[];
array[1]=a%1000%100%10;
array[2]=a%1000/100;
array[3]=a%100/10;
array[4