c语言对数字判断问题

img


打了好久都没有思路,各位帮忙看看这个
zjsjhshsudjsnwbe


 
#include <stdio.h>
int main()
{
    int x, count;
    count = 1;
    scanf("%d", &x);
    int n = x;
    int i = 0;
    int number[10] = {0};
    while (x / 10 > 0)
    {
        number[i++] = x % 10;
        x = x / 10;
        if (x >= 0)
        {
            count++;
        }
    }
    number[i++] = x % 10;
    printf("%d\n", count);
 
    for (i = count - 1; i >= 0; i--)
    {
        printf("%d", number[i]);
        if(i != 0)
        {
            printf(" ");
        }
    }
    printf("\n");
    for (i = 0; i < count; i++)
    {
        printf("%d", number[i]);
    }
    printf("\n");
    return 0;
}

#include <iostream>
#include <stack>
using namespace std;

int main()
{

    stack<int> temp;//存放栈
    int ans = 54321;
    int t = 0;//临时变量
    int result = 0;//逆顺序结果
    int count = 0;//计数器
    while (ans % 10)
    {
        t = ans % 10;
        ans = ans / 10;
        temp.push(t);
        result = result * 10 + t;
        count++;
    }
    cout << "数量:" << count << endl;
    cout << "逐一打印:";
    while (!temp.empty())
    {
        cout << temp.top() <<" ";
        temp.pop();
    }
    cout << endl;
    cout << "逆顺序:"<< result;
    return 0;
}