各位神,c语言问题,希望用简单的编写,说明步骤,附带运行截图和结果截图

给一个不多于5位的正整数。
要求:1:求出它是几位数;
2:分别输出每一位数字;
3:按逆序输出各位数字,例如原数为321,应输出123。

解答如下

img

#include <stdio.h>
int main()
{
    int num,t[5],p=0;
    scanf("%d",&num);
    while(num)
    {
        t[p++]=num%10;
        num/=10;
    }
    printf("它是%d位数\n",p);
    printf("每一位数字:");
    for(int i=0;i<p;i++)
    {
        printf("%d ",t[p-1-i]);
    }
    printf("\n逆序输出各位数字:");
    for(int i=0;i<p;i++)
    {
        printf("%d ",t[i]);
    }
    return 0;
}

数值不断除以10取余数,直到数值为0

img

你题目的解答代码如下:

#include<stdio.h>

int main() {
    int n,m=0,count=0;
    int a[10] = {0};
    scanf("%d", &n);
    do {
        a[count++] = n%10;
        m = m*10 + n%10;
    } while ((n/=10)!=0);
    printf("是%d位数\n",count);
    printf("输出每一位数字:\n");
    for (int i = count-1; i >=0; i--)
        printf("%d\n", a[i]);
    printf("按逆序输出各位数字 %d\n",m);
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img


#include <stdio.h>
int main()
{
    int num,t[5],p=0;
    scanf("%d",&num);
    while(num)
    {
        t[p++]=num%10;  //取余得到每位数字
        num/=10;   //除 10 更新
    }
    printf("它是%d位 的数\n",p);
    printf("每一个数字为:");
    for(int i=0;i<p;i++)   //循环输出
    {
        printf("%d ",t[p-1-i]);
    }
    printf("\n逆序输出 各位数字:");
    for(int i=0;i<p;i++)
    {
        printf("%d ",t[i]);
    }
    return 0;
}
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string a;
    cin >> a;
    int s = a.size();
    cout << s << endl;
    for (int i = 0; i < s; i ++)
        cout << a[i] << ' ';
    cout << endl;
    for (int i = s - 1; i >= 0; i --)
        cout << a[i] << ' ';

    return 0;
}