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

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

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

题目输入

一个不大于5位的数字

题目输出

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

输入/输出样例

输入格式

12345

输出格式

5
1 2 3 4 5
54321

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;
}

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;
}