C语言 输入一个正整数,按照从高位到低位的顺序输出各位数字

供稿:hz-xin.com     日期:2025-01-13
c语言习题,输入一个正整数,按照从高位到低位的顺序输出各位数字。怎么做

输入时由代码限制只能是正整数,并赋与int型变量n,否则退出;
用一个for循环计算输入之数的十进制长度,用1之后的0的个数表示并赋与临时变量t,如10000表示输入了一个4位十进制正整数;
用一个while循环先后由t/=10和n/t%10来求得从高位至低位的各位数字并输出。
代码如下:
#include "stdio.h"int main(int argc,char *argv[]){int n,t;printf("Please enter a positive integer...
n=");if(scanf("%d",&n)!=1 || n<1){//保证输入是正整数,否则退出printf("Input error, exit...
");return 0;}printf("The result are as follows:
");for(t=10;n/t;t*=10);//求出十进制数n的长度,用1后0的个数表示,如1000表示3位数while(t/=10)printf("%d ",n/t%10);//t/=10与n/t%10配合从高至低输出各位上的数字printf("
");return 0;}运行样例如下:

#include void haha(int a){if(a/10 ==0){printf("%d ",a%10);}else{haha(a/10);printf("%d ",a%10);}}int main(void){long int a;scanf("%ld",&a);haha(a);printf("
");}

因为要求从高位输出,第一个循环求出输入得数多少位,并用power保存相关信息(如:输入1,power=1,输入123,power=100,输入1234,power=10000,输入12345,power=10000)。

循环结束后还要再 

power=power/10;//因为循环将这个数为一位数的时候多成了10,即输入1,算出power=10,
//但实际power应该为1

第二个循环,digit=number/power;获得当前的最高位,最高位获得到了,接下来就是求次高位,所以

number%=power;//原来的数去掉最高位数字后得到的数                  
power/=10;//原来的数减少一位,power保存的数也应当缩小10


power/=10 的意思就是 power = power/10;

#include<stdio.h>
int main(void)
{
int x,a,b,t;
scanf("%d",&x);
while(x<0)
x=-x;
if(x>0){
a=x%10;
while(x!=0){
x=x/10;
b=x%10;
a=a*10+b;}}
a=a/10;
while(a!=0){
t=a%10;
printf("%3d",t);
a=a/10;}
return 0;
}

C语言 输入一个正整数,按照从高位到低位的顺序输出各位数字
因为要求从高位输出,第一个循环求出输入得数多少位,并用power保存相关信息(如:输入1,power=1,输入123,power=100,输入1234,power=10000,输入12345,power=10000)。循环结束后还要再 power=power\/10;\/\/因为循环将这个数为一位数的时候多成了10,即输入1,算出power=10,\/\/但实际power应该为1...

c语言习题,输入一个正整数,按照从高位到低位的顺序输出各位数字。怎么...
include "stdio.h"int main(){ int digit,number,power,t;scanf("%d",&number);number=number<0?-number:number;power=1;t=number\/10;while(t!=0){ power*=10;t\/=10;} printf("the digits are:");while(power!=0){ digit=number\/power;printf("%d ",digit);number=number%power;...

c语言习题,输入一个正整数,按照从高位到低位的顺序输出各位数字。怎么...
用一个for循环计算输入之数的十进制长度,用1之后的0的个数表示并赋与临时变量t,如10000表示输入了一个4位十进制正整数;用一个while循环先后由t\/=10和n\/t%10来求得从高位至低位的各位数字并输出。代码如下:include "stdio.h"int main(int argc,char *argv[]){int n,t;printf("Please ent...

输入一个正整数,按照从高位到低位的顺序输出各位数字。 运行示例: Ente...
3.A、B错的太假,不说,从(4)空位置可以看出number的值每次都消失一位(由digit输出),所以只有number完全消失后才算分解结束,此时number = 0。

输入一个正整数,从高位开始逐位分割并输出它的各位数字并判断该数是否...
i*i<=n; i++) if(n%i==0)return 0; return n>1;}void fenge(int n){ if(n>9)fenge(n\/10); printf("%d ",n%10);}int main(){ int n; scanf("%d",&n); fenge(n); printf("\\n%d %s是一个素数\\n",n,isprime(n)?"":"不"); return 0;} ...

从键盘输入一个长正整数(不超过10位),从高位开始逐位分割并输出._百度...
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.include "stdio.h"void main(void){ unsigned n,m,x;printf("Type an integer...\\nn=");scanf("%d",&n);for(x=1,m=n\/10;m;m\/=10,x*=10);while(x){ printf("%d ",n\/x%10);x\/=10;} printf("\\b\\n");} ...

输入一个正整数,判断每个数从高位到低位各位数字是否按值从小到大排列...
include <stdio.h>int input();int fun1(int m);void main(){ int n; n=input();\/\/ if(fun1(n))\/\/ printf("yes\\n"); else printf("no\\n");}int input(){int n;scanf("%d",&n); if (n>0) return n;else return -1*n;\/\/}int fun1( int m ...

输入任意一个正整数n,将n各位上为奇数的数取出,按原来从高位往低位相...
include<iostream> using namespace std;void main(){ cout<<"请输入一个整数"<<endl;int a;cin>>a;int b=a%10;int c=a\/10;cout<<"结果为"<<endl;do { if(b%2!=0){ cout<=0);} 没bug,运行结果是

顺序输出各位数字
输入一个整数,从高位开始逐位分割并输出各位数字。 输入一个正整数n,n是int型数据 依次输出各位上的数字,每一个数字后面有一个空格,输出占一行。例如,输入 12345 ,输出 1 2 3 4 5 #include<stdio.h> #include<math.h> int main() { int ... 展开 苏...

c语言: 输入一个正整数,按从低到高顺序依次输出其各位数字的值...
代码如下:include <stdio.h> int main(void) { int n;scanf("%d", &n);while (n) { printf("%d", n % 10);n = n \/ 10;} return 0;} 运行如下:输入105,低位到高位逆序输出501。符合题意,望采纳~