游客 Signup | Login
中文 | En

1692 - C语言程序设计教程(第三版)课后习题5.7

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

Input

一个不大于5位的数字

Output

三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数

Examples

Input

12345

Output

5
1 2 3 4 5
54321

Hint

哈姆雷特:数字还是字符?这是一个问题!

Solution C

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
    
     int n;
     int a[5],i=0;
     int sum=0l,m;
     int count=0;
     scanf("%d",&m);
    while(m)
    {
      a[i]=m%10;
      m=m/10;
      i++;
    }
  
    printf("%d\n",i);
   for(n=i-1;n>0;n--)
   {             
    printf("%d ",a[n]);
    }
    printf("%d",a[0]);
    printf("\n");
    
    for(n=0;n<i;n++)
    {
    printf("%d",a[n]);
   }
    printf("\n");


  return 0;
}

Solution C++

#include<stdio.h>
#include<math.h>
int num(int a)
{
	int i=1;
	while(a/10>0)
	{
		a=a/10;
		i++;
	}
	return i;
}
void yui(int a,int i)
{
	int b;
	do{
		b=a/(int)pow(10,i-1);
		printf("%d",b);
		if(i>1)
			printf(" ");
		a-=b*(int)pow(10,i-1);
	}while(i=i-1);
	printf("\n");
}
void ghj(int a,int i)
{
	i=i-1;
	do{
		printf("%d",a%10);
		a/=10;
		if(i==0)
			printf("\n");
	}while(i--);
}
int main()
{
	int a,i=1;
	scanf("%d",&a);
	i=num(a);
	printf("%d\n",i);
	yui(a,i);
	ghj(a,i);
	return 0;
}

Hint

哈姆雷特:数字还是字符?这是一个问题!

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题