题目描述
给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
输入
一个不大于5位的数字
输出
三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数
样例输入
12345
样例输出
5 1 2 3 4 5 54321
//任务一:得出几位数
int weishu(int n){
int j=0;
for(j=1;j<=5;j++){
n=n/10;
if(n<1) break;
}
return j;
}
void fenjie(int n,int s){
int i,arr[5];
//任务二:去出每一位数字,并输出
for(i=0;i<s;i++){
if(i<1)
arr[i]=n/(int)pow(10,s-1-i);
else
arr[i]=n/(int)pow(10,s-1-i)%10;
}
//顺序输出
for(i=0;i<s;i++)
printf("%-3d",arr[i]);
printf("\n");
//任务三:把整数逆序输出
for(i=s-1;i>=0;i--){
printf("%d",arr[i]);
}
printf("\n");
}
#include<stdio.h> #include<math.h> //给出一个不多于5位的整数, //要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 //任务一:得出几位数 int weishu(int n){ int j=0; for(j=1;j<=5;j++){ n=n/10; if(n<1) break; } return j; } void fenjie(int n,int s){ int i,arr[5]; //任务二:去出每一位数字,并输出 for(i=0;i<s;i++){ if(i<1) arr[i]=n/(int)pow(10,s-1-i); else arr[i]=n/(int)pow(10,s-1-i)%10; } //顺序输出 for(i=0;i<s;i++) printf("%-3d",arr[i]); printf("\n"); //任务三:把整数逆序输出 for(i=s-1;i>=0;i--){ printf("%d",arr[i]); } printf("\n"); } int main(){ int n; int i,j,s=0; scanf("%d",&n); s=weishu(n); printf("%d\n",s); fenjie(n,s); }