咸宁 发表于 2021-10-27 20:08:48

简单的题

输入一个不多于5位的数,要求      1,求他是几位数,2,分别打印出每一位数3,逆序打印此结果。求解。

傻眼貓咪 发表于 2021-10-27 20:45:11

#include <stdio.h>
#include <math.h>

int place(int n){ for(int i = 4; i >= 0; i--) if(n >= pow(10, i)) return i+1; }
int digits(int n, int x){ return (n%(int)(pow(10, x)))/pow(10, x-1); }
void printDecreasing(int n){ for(int i = 1; i <= place(n); i++) printf("%d ", digits(n, i)); }
void printIncreasing(int n){ for(int i = place(n); i > 0; i--) printf("%d ", digits(n, i)); }

int main()
{
    int n;
    scanf("%d", &n);
    printf("%d 位数\n循序每个数字:", place(n));
    printIncreasing(n);
    printf("\n");
    printf("逆序每个数字:");
    printDecreasing(n);
    return 0;
}输入/输出:24689
5 位数
循序每个数字:2 4 6 8 9
逆序每个数字:9 8 6 4 2

傻眼貓咪 发表于 2021-10-27 20:46:08

{:10_254:}

咸宁 发表于 2021-10-28 08:53:55

你前面四行是什么意思,我还没有学那么多

思念的冬天 发表于 2021-10-31 22:12:49

第一行是求输入的数字有多少位;
第二行是求每一位的数字;
第三行是把每一位的数字正序打印出来;
第三行是把每一位的数字倒序打印出来;

女新手 发表于 2021-10-31 22:29:53

学习学习
页: [1]
查看完整版本: 简单的题