1413 - C语言-数字分解

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

题目输入

一个不大于5位的数字

题目输出

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

输入/输出样例

题目输入

12345

题目输出

5
1 2 3 4 5
54321

提示

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

C语言解答

#include<stdio.h>
int main()
{
	char a[5];
	int i,c;
	for(i=0;i<5;i++)
	{
		scanf("%c",&a[i]);
		if(a[i]=='\n')
			break;
		c=i+1;
	}
	printf("%d\n",c);
	for(i=0;i<c;i++)
	{
		printf("%c",a[i]);
		if(i!=c-1)
			printf(" ");
		else
			printf("\n");
	}
	for(i=c-1;i>=0;i--)
	{
		printf("%c",a[i]);
	}
	printf("\n");
	return 0;
}

C++解答

#include<iostream>
#include<iomanip>
#include<fstream>
#include<string> 
#include<climits>
#include<cctype>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
 //ifstream cin("aaa.txt");
  int i,j,n,m,k,sum,p,len,a[10],l,count;
  
  int x,y;
  string s,b[1000];
  cin>>x;
  memset(a,0,sizeof(a));
  a[0]=x;j=0;
  while(a[j]>=10)
  {
	  a[j+1]=a[j]/10;
	  a[j]=a[j]%10;
      j++;
  }
  cout<<j+1<<endl;
  if(j==0) cout<<a[j]<<endl;
  else 
  {
	  cout<<a[j];
	  for(i=j-1;i>=0;i--)
		  cout<<" "<<a[i];
	  cout<<endl;
  }
  for(i=0;i<=j;i++)
	  cout<<a[i];
  cout<<endl;

  
  

  	return 0;

}

提示

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

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题