c语言习题,输入一个正整数,按照从高位到低位的顺序输出各位数字。怎么做 C语言 输入一个正整数,按照从高位到低位的顺序输出各位数字

c\u8bed\u8a00\u4e60\u9898\uff0c\u8f93\u5165\u4e00\u4e2a\u6b63\u6574\u6570\uff0c\u6309\u7167\u4ece\u9ad8\u4f4d\u5230\u4f4e\u4f4d\u7684\u987a\u5e8f\u8f93\u51fa\u5404\u4f4d\u6570\u5b57\u3002

\u8f9b\u82e6\u6253\u6765\uff0c\u671b\u91c7\u7eb3\uff0c\u8c22\u8c22\uff01
#includeint main(){int a;int flag=0;scanf("%d",&a);if(a/1000000000){printf("%d\t",a/1000000000);flag=1;}if(a%1000000000/100000000 || flag){printf("%d\t",a%1000000000/100000000);flag=1;}if(a%100000000/10000000 || flag){printf("%d\t",a%100000000/10000000);flag=1;}if(a%10000000/1000000 || flag){printf("%d\t",a%10000000/1000000);flag=1;}if(a%1000000/100000 || flag){printf("%d\t",a%1000000/100000);flag=1;}if(a%100000/10000 || flag){printf("%d\t",a%100000/10000);flag=1;}if(a%10000/1000 || flag){printf("%d\t",a%10000/1000);flag=1;}if(a%1000/100 || flag){printf("%d\t",a%1000/100);flag=1;}if(a%100/10 || flag){printf("%d\t",a%100/10);flag=1;}if(a%10 || flag){printf("%d\n",a%10);flag=1;}}\u4e0d\u8981\u8d85\u8fc7int\u7684\u8303\u56f4\u5c31\u884c\u4e86

\u56e0\u4e3a\u8981\u6c42\u4ece\u9ad8\u4f4d\u8f93\u51fa\uff0c\u7b2c\u4e00\u4e2a\u5faa\u73af\u6c42\u51fa\u8f93\u5165\u5f97\u6570\u591a\u5c11\u4f4d\uff0c\u5e76\u7528power\u4fdd\u5b58\u76f8\u5173\u4fe1\u606f\uff08\u5982\uff1a\u8f93\u51651\uff0cpower=1\uff0c\u8f93\u5165123\uff0cpower=100\uff0c\u8f93\u51651234\uff0cpower=10000\uff0c\u8f93\u516512345\uff0cpower=10000\uff09\u3002
\u5faa\u73af\u7ed3\u675f\u540e\u8fd8\u8981\u518d
power=power/10;//\u56e0\u4e3a\u5faa\u73af\u5c06\u8fd9\u4e2a\u6570\u4e3a\u4e00\u4f4d\u6570\u7684\u65f6\u5019\u591a\u6210\u4e8610,\u5373\u8f93\u51651\uff0c\u7b97\u51fapower=10,//\u4f46\u5b9e\u9645power\u5e94\u8be5\u4e3a1\u7b2c\u4e8c\u4e2a\u5faa\u73af\uff0cdigit=number/power;\u83b7\u5f97\u5f53\u524d\u7684\u6700\u9ad8\u4f4d\uff0c\u6700\u9ad8\u4f4d\u83b7\u5f97\u5230\u4e86\uff0c\u63a5\u4e0b\u6765\u5c31\u662f\u6c42\u6b21\u9ad8\u4f4d\uff0c\u6240\u4ee5
number%=power;//\u539f\u6765\u7684\u6570\u53bb\u6389\u6700\u9ad8\u4f4d\u6570\u5b57\u540e\u5f97\u5230\u7684\u6570 power/=10;//\u539f\u6765\u7684\u6570\u51cf\u5c11\u4e00\u4f4d\uff0cpower\u4fdd\u5b58\u7684\u6570\u4e5f\u5e94\u5f53\u7f29\u5c0f10

  1. 输入时由代码限制只能是正整数,并赋与int型变量n,否则退出;

  2. 用一个for循环计算输入之数的十进制长度,用1之后的0的个数表示并赋与临时变量t,如10000表示输入了一个4位十进制正整数;

  3. 用一个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;
}

运行样例如下:



//不要超过int的范围就行了
#include<stdio.h>
 
int main()
{
    int a;
    int flag=0;
    scanf("%d",&a);
    if(a/1000000000)
    {
        printf("%d",a/1000000000);
        flag=1;
    }
    if(a%1000000000/100000000 || flag)
    {
        printf("%d",a%1000000000/100000000);
        flag=1;
    }
    if(a%100000000/10000000 || flag)
    {
        printf("%d",a%100000000/10000000);
        flag=1;
    }
    if(a%10000000/1000000 || flag)
    {
        printf("%d",a%10000000/1000000);
        flag=1;
    }
    if(a%1000000/100000 || flag)
    {
        printf("%d",a%1000000/100000);
        flag=1;
    }
    if(a%100000/10000 || flag)
    {
        printf("%d",a%100000/10000);
        flag=1;
    }
    if(a%10000/1000 || flag)
    {
        printf("%d",a%10000/1000);
        flag=1;
    }
    if(a%1000/100 || flag)
    {
        printf("%d",a%1000/100);
        flag=1;
    }
    if(a%100/10 || flag)
    {
        printf("%d",a%100/10);
        flag=1;
    }
    if(a%10 || flag)
    {
        printf("%d
",a%10);
        flag=1;
    }
}

辛苦打来,望采纳,谢谢!



  • c璇█,绋嬪簭璁捐,杈撳叆涓涓鏁存暟n1,鐒跺悗杈撳叆绗竴缁刵1涓暟,灏嗚繖浜涙暟鎸...
    绛旓細include "stdio.h"#include "stdlib.h"int input(char *n){int m;printf("Enter %s(int 0<%s<101)...\n%s = ",n,n,n);if(scanf("%d",&m)==1 && m>0 && m<101){return m;}printf("Input error, exit...\n");exit(1);}void getdata(int *x,int n){int i;printf("...
  • c璇█缂栫▼鈥杈撳叆涓涓涓や綅鐨姝f暣鏁,鎸瀛楃鍨嬪舰寮忚緭鍑
    绛旓細include <stdio.h>void func(unsigned long n);int main(void) {unsigned long n;scanf("%lu",&n);func(n);return 0;}void func(unsigned long n){if(n){func(n/10);putchar('0'+n%10);}}
  • C璇█:杈撳叆涓涓鏁存暟, 璁$畻骞舵樉绀哄嚭璇ユ暟鐨勫悇浣嶆暟瀛椾箣鍜.
    绛旓細n%10;n/=10;}return s;}int main(){int n;printf("璇杈撳叆涓涓鏁存暟锛");scanf("%d", &n);printf("杈撳叆鐨勬暟涓猴細 %d 锛 鍏跺悇浣嶄箣鍜屼负锛 %d\n", n, sum(n));return 0;} 杈撳嚭锛氳杈撳叆涓涓鏁存暟锛12345杈撳叆鐨勬暟涓猴細 12345 锛 鍏跺悇浣嶄箣鍜屼负锛 15璇锋寜浠绘剰閿户缁. . ....
  • C璇█:杈撳叆涓涓鏁存暟, 璁$畻骞舵樉绀哄嚭璇ユ暟鐨勫悇浣嶆暟瀛椾箣鍜.
    绛旓細杈撳嚭璇ユ暟鐨勫悇浣嶆暟瀛椾箣鍜岀殑婧愪唬鐮佸涓嬶細include <stdio.h> int fun(int n){ int i;int sum=0;if(n>1000||n<0){ puts("杈撳叆鐨勬暟瀛楄秴鍑鸿寖鍥达紒"); // 閿欒淇℃伅鎻愮ず } else { for(i=2;i<n;i++) // 寰幆閬嶅巻n锛屽彇鍑哄洜瀛愶紝骞惰繘琛岀疮鍔 { if(0 == n%i){ sum+=i;} } } return...
  • ...甯啓涓▼搴忓憲銆杈撳叆涓涓浜斾綅鏁扮殑姝f暣鏁,鎸椤哄簭杈撳嚭缁勬垚璇ユ暣鏁扮殑鍚...
    绛旓細{ int a,n;printf("杈撳叆涓涓浜斾綅鏁姝f暣鏁:");scanf("%d",&a);while(a>0){n=a%10;printf("%d\n",n);a=a/10;} return 0;} 2.浠庢渶楂橈紙涓囷級浣嶅紑濮嬭緭鍑 include <stdio.h> int main(int argc, char *argv[]){ int a,n,b[30],i=0,j;printf("杈撳叆涓涓簲浣嶆暟姝f暣鏁:");...
  • 缂栫▼瀹炵幇:浠庨敭鐩樹换鎰杈撳叆涓涓涓変綅姝f暣鏁,灏嗚鏁板垎瑙f垚涓綅銆佸崄浣嶃佺櫨 ...
    绛旓細include<stdio.h> int main(){ int n,k=0;int a[11]={0};scanf("%d",&n);while(n){ a[k++]=n%10;//鎻愬彇鍚勪釜浣嶄笂鐨鏁帮紝鍌ㄥ瓨鍦ㄦ暟缁刟涓 n/=10;} for(int i=0;i<k;i++)//鍐掓场鎺掑簭 for(int j=0;j<k-i-1;j++)if(a[j]>a[j+1]){ int t;t=a[j];a[j]=a[...
  • C璇█闂:杈撳叆涓涓鏁存暟n鍜屼竴涓疄鏁皒 鎸夌粰瀹氬叕寮忔眰cos(x)鐨勮繎浼煎...
    绛旓細printf("杈撳叆涓涓鏁存暟n鍜屼竴涓疄鏁皒锛"); /* 杈撳叆鎻愮ず */ scanf("%d%lf",&n,&x);//璇峰湪涓ゆ潯鏄熺嚎闂村~鍏ョ浉搴斾唬鐮, 鎸缁欏畾鍏紡姹俢os(x)鐨勮繎浼煎 //瑕佹眰锛氳皟鐢ㄥ嚱鏁癴act姹傞樁涔橈紝璋冪敤鍑芥暟power姹傚箓鍑芥暟銆/***/ flag=-1;if(n==1) { sum=1;} else { sum=1;for(i=2;i<=n;i++...
  • 灏涓涓鏁存暟浠庡彸鍒板乏鎸変綅杈撳嚭 姹c璇█绋嬪簭
    绛旓細scanf("%d",&i);a=i/100; /*鍙栫櫨浣*/ b=(i-a*100)/10; /*鍙栧崄浣*/ c=(i-a*100-b*10); /*涓綅*/ printf("%d %d %d",c,b,a);} 鎴戜互涓変綅鏁存暟涓轰緥 include <stdio.h> void fun(long); //鍑芥暟澹版槑 void main(){long n;printf("璇疯緭鍑涓涓鏁存暟:");scanf(...
  • C璇█缂栫▼ 缂栦竴涓彲浠ュ皢浠绘剰涓涓鏁存暟鎸涓変綅鍒嗚妭杈撳嚭,濡杈撳叆1234567...
    绛旓細鎴戠殑妤...#include <stdio.h>void main(){ int i=0,k=0,t;char str[20]; scanf("%d",&t); while(t){ if(k==3){ k=0;str[i++]=',';} else { k++;str[i++]=t%10+'0';t/=10;} } while(i--){ printf("%c",str[i]);} printf("\n");}杩愯鏃舵埅鍥:...
  • c璇█缂栫▼:缁涓涓涓嶅浜5浣嶇殑姝f暣鏁,瑕佹眰(1)姹傚嚭瀹冩槸鍑犱綅鏁(2)鍒嗗埆杈 ...
    绛旓細include <stdio.h>//鏃犺鍙婃椂閲囩撼鍥炵瓟 int main(){int n;int count=0,i,a[5];printf ("杈撳叆涓涓涓嶅浜5浣姝f暣鏁(0~99999):\n");scanf("%d",&n);if (n<=0 || n>=100000){printf ("杈撳叆鐨勬暟涓嶅悎娉昞n");}else{while(1){a[count]=n%10;n=n/10;if(n==0){break;}count...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网