C语言任意输入一个有五位数字的正整数,逆序输出每一数位上的数字 如输入12345 输出5 4 3 2 1

如题所述

第1个回答  2017-06-16

输入一个整数,将其每位剥离,并记录在一个数组中,此时每位数即是逆序排列的。

#include <stdio.h>

#define ARRAY_LEN 100 /*数组长度*/

void numToDigit (int num, int arr[]) { /*将数字按位剥离并存储在数组中,该算法剥离出的每位数即是逆序排列的*/
int i,j,n;
for (i = 0, n = num; n>0; i++) {
arr[i] = n%10; /*除以10取余数,以取出最后一位数字*/
n = n/10; /*除以10取整数,以丢弃最后一位数字*/
arr[i+1] = '\0'; /*数组结束符号,便于后续统计位数*/
}
}

int digitCount (int arr[]) { /*统计位数*/
int i,count;
for (i = 0, count = 0; arr[i] != '\0'; i++)
count++;
return count;
}

void printArr (int arr[], int len) { /*打印数组*/
    int i;
    for (i = 0; i<len; i++)
     printf("%d\t",arr[i]);
printf("\n");
}

int main(void) {
    int num,len,arr[ARRAY_LEN];
    
    printf("请输入一个正整数:\n");
    scanf("%d",&num);
    printf ("======================================================\n\n");

printf("每一位数字逆序输出:\n");
numToDigit (num, arr);
len = digitCount (arr);
    printArr (arr, len);

    return 0;
}

执行结果

...逆序输出每一数位上的数字 如输入12345 输出5 4 3 2 1
输入一个整数,将其每位剥离,并记录在一个数组中,此时每位数即是逆序排列的。include <stdio.h>#define ARRAY_LEN 100 \/*数组长度*\/void numToDigit (int num, int arr[]) { \/*将数字按位剥离并存储在数组中,该算法剥离出的每位数即是逆序排列的*\/int i,j,n;for (i = 0, n = num...

...逆序输出每一数位上的数字 如输入12345 输出5 4 3 2 1
include<iostream> usingnamespacestd;intmain(){ intoriginal,key,result=0;cout<<"PleaseEntertheNumber:"<<endl;cin>>original;do { key=original%10;if(key==0){ cout<<"NewNumberis0"<<original;\/\/original=(original-key)\/10;} else { result=key+result*10;\/\/result需要移位 original=...

C语言编程,任意输入一个五位正整数,逆序输出每一位上的数 如输入54321...
\/(int) 结果为int 2: 待执行ser函数后,输出结果个位数 12345 % 10 = 5 3: 第二次执行ser函数...类比步骤1 4: 待递归执行ser函数,类比步骤2,输出十位个数 1234 % 10 = 4 5: 类比步骤1 6: 类比步骤2,输出百位个数 123 % 10 = 3 7: 类比步骤1 8: 类比步骤2,输出千位 12 %...

c语言,任意输入一个五位正整数,逆序输出每一位上的数
include <stdio.h>void main(){int i,n,a[5];scanf("%d",&n);for(i=0;i<5;i++){a[i]=n%10;n=n\/10;}for(i=0;i<5;i++)if(a[i]){for(;i<5;i++)printf("%1d",a[i]);break;}}运行示例:

用C语言编程,输入一个五位整数将它反向输出,如输入54321 ,输出12345
int main(){ int n,num1,num2,num3,num4,num5,m;printf("please input the number: ");scanf("%d",&n);num1=n\/10000; \/\/万位 num2=(n-num1*10000)\/1000; \/\/千位 num3=(n-num1*10000-num2*1000)\/100; \/\/百位 num4=(n-num1*10000-num2*1000-num3*100)\/10; \/\/十位 ...

如何用C语言将一个12345···这种数字输出出来成:1 2 3 4 5...
printf("%d ",n%10);}int main(void){ int n; printf("Input n(int n>0)...\\nn="); if(scanf("%d",&n)!=1 || n<1){ printf("Input error, exit...\\n"); return 0; } myf(n); printf("\\n"); return 0;} ...

c语言编程 想在“逆序输出每一数位上的数字” 后面输出结果,怎么加上...
printf("逆序输出每一数位上的数字:"); while(n) { printf("%d\\n",n%10);; n=n\/10; } } int main(){ int n; printf("任意输入一个有五位数字的正整数:"); scanf("%d",&n); fun(n); return 0;} ...

...一个五位以内的正整数反向输出,如12输出21,12345输出54321
include<stdio.h>int a[5];void reverse(int n){ int i,count=0; while(n){ a[count++]=n%10; n\/=10; } for(i=0;i<count;i++){ printf("%d",a[i]); } printf("\\n");}int main(){ int n; while(scanf("%d",&n)!=EOF){ rever...

...输入一个五位整数,将它反向输出。例如输入12345,输出应为54321...
方法很多嘛 随便来一个:include <stdio.h> include <stdlib.h> void main(){ char p[10];char *q;int i=0;scanf("%s",p);q=p;while(*(q++))i++;q--;while(i-->=0)printf("%c",*(q--));}

...位数得到各位上数字的和,比如属如“12345”输出 1+2+3+4+5=15...
printf("please enter a integer between 1 and 100000:");scanf("%d",&n); \/*这儿可以加一个判断语句看是不是五位 n>99999?s=n\/10000+(n%10000)\/1000+(n%1000)\/100+(n%100)\/10+n%10;printf("\\nresult:%d",s);getch();} \/\/嗯,下面这个是取巧的,可以随便输入 include "stdio....

相似回答
大家正在搜