#include<stdio.h>
void f(int x)
{
if(x<10)
printf("%d",x);
else
{
printf("%d",x%10);
return f(x/10);
}
}
int main()
{
int a;
printf("请输入一个五位数以内的整数:");
scanf("%d",&a);
if(a<99999)
{
printf("该数反序输出为:");
f(a);
}
else
{
do
{
printf("ERROR!请输入一个五位数以内的整数!\n");
scanf("%d",&a);
}while(a>=100000);
printf("该数反序输出为:");
f(a);
}
return 0;
}
我们教师说不能在函数里进行输入和输出,请问如何修改。。以上是我做的
两个函数,两个功能,供参考:
#include <stdio.h>
#include <math.h>
void inverse(int n)//递归 反序逐位输出 一个整数
{
if (n > 0) {
printf("%d", n % 10);
inverse(n / 10);
}
}
int reverse(int n) //递归 生成 逆序数
{
if (n == 0)
return 0;
int len = 0;
int c = n % 10;
int other = c;
if (n >= 10)
{
int tmp = n;
while (tmp / 10 > 10)
{
tmp /= 10;
len++;
}
other = (int)(c * pow(10, len + 1));
}
return other + reverse(n / 10);
}
int main()
{
int n, m;
scanf("%d", &n);
m = reverse(n);
printf("%d\n", m);
inverse(n);
return 0;
}