输入不大于5位的整数,要求
(1)输出是几位数。
(2)分别输出每一位数字
(3)按逆顺序输出各位数字。
这个程序感觉好复杂,我只能编出第一个要求,还要请教高手简单明白的编出,谢谢。
输入不大于5位的整数,要求
(1)输出是几位数。
(2)分别输出每一位数字
(3)按逆顺序输出各位数字。
这个程序感觉好复杂,我只能编出第一个要求,还要请教高手简单明白的编出,谢谢。
#include <stdio.h>
int main()
{
int sum,i=0,j;
char str[6]={'\0'};
//while循环用于输入,只有当输入的数不大于5位数时,程序才往下执行,否则重新输入.
while(true)
{
printf("Input Number:");
scanf("%d",&sum);
if(sum<=100000) break;
}
while(sum)
{
str[i++]=sum%10+'0';
sum/=10;
}
//输出是几位数字.
printf("%d\n",i);
//分别输出每一位.
while(i-->0)
{
printf("%c ",str[i]);
}
//逆序输出.
printf("\n%s\n",str);
return 0;
}
附图:
#include<iostream> #include<math.h>
using namespace std;
int leng(int a) { int flag=0; while(a) { a/=10; flag++; } return flag; }
void chaifen(int cf,int leng) { int *p=new int[leng]; int temp=0; for(int i=0;i<leng;i++) { temp=cf%10; cf/=10; *p++=temp; } //p-=leng; for(int j=0;j<leng;j++) { cout<<*--p<<ends; } cout<<endl; for(int k=0;k<leng;k++) { cout<<*p++<<ends; } cout<<endl; p-=leng; delete [] p; }
void main(void) { //int arr[5]; int test=0,flag=0; cin>>test; flag=leng(test); chaifen(test,flag); cout<<"有"<<flag<<"位"<<endl; }
# imclude <stdio.h>
void main()
{
int a
a<=5;
printf("%d",a)
}