#include <stdio.h>
#include <stdlib.h> //exit的包含函数
void sort(int, int, int, int); //函数声明
int main()
{
int num;
printf("\n请输入一个不多于5位的正整数: ");
scanf("%d", &num);
//检查是不是不多于五位, 是的话退出程序并提示输入错误
if (num > 99999)
{
printf("\n你输入的数有误!程序即将退出!");
exit(0); //终止整个程序
}
if(num > 9999) //说明是五位数
{
printf("你输入的是一个5位数!\n");
sort(num, 5, 10000, 0);
exit(0);
}
if(num > 999)
{
printf("你输入的是一个4位数!\n");
sort(num, 4, 1000, 0);
exit(0);
}
if(num > 99)
{
printf("你输入的是一个3位数!\n");
sort(num, 3, 100, 0);
}
if(num > 9)
{
printf("你输入的是一个2位数!\n");
sort(num, 2, 10, 0);
}
else
{
printf("你输入的是一个1位数!\n");
sort(num, 1, 1, 0);
}
return 0;
}
//调用函数实现输出每一位, 再反向输出这个数
void sort(int num,int n, int t, int sum) //参数为数字的位数与t, sum的初始值
{
//num为输入的数字
//n为确定的位数
//t为确定位数后对应的倍数
//sum为了存放反向输出的数
int i = 1, w;
for (;i <= n;num = num/10, i++, t = t/10) //条件
{
w = num%10; //取出位数
printf("从右到左第%d位数字是: %d\n", i, w); //打印
sum = sum + w*t;
}
printf("反向输出这个数是: %d\n", sum);
}
**********************在vc++6.0中结果为**************************
请输入一个不多于5位的正整数: 68543
你输入的是一个5位数!
从右到左第1位数字是: 3
从右到左第2位数字是: 4
从右到左第3位数字是: 5
从右到左第4位数字是: 8
从右到左第5位数字是: 6
反向输出这个数是: 34586
Press any key to continue