新手初学者。求问如何用c语言写一个使输入的数字倒序排列的程序(><)求高手解答

新手菜鸟。。求问怎么用c语言写一个使输入的数字倒序排列的程序(>_<)求高手解答
我直接复制粘贴的题目。。。不知道英文可不可以。。
Description

  Reverse the input string.
Input

  There’re multiple cases. For each case there’s one line containing a string, witch length is no more than 100. Input is end with EOF.
Output

  For each test case, output the reversed string on one line.
Sample Input
Copy sample input to clipboard

123

Sample Output

321



------解决方案--------------------
stack
------解决方案--------------------
C/C++ code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(void)
{
    char    str[120];
    int     i, j;
    char    tmp;

    while (scanf("%s", str) == 1) {
        i = strlen(str);
        i--;
        for (j = 0; j < i; j++, i--) {
            tmp = str[i];
            str[i] = str[j];
            str[j] = tmp;
        }
        printf("%s\n", str);
    }

    return 0;
}

------解决方案--------------------
解释一下:
C/C++ code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(void)
{
    char    str[120];
    int     i, j;
    char    tmp;

    while (scanf("%s", str) == 1) { // 连续输入字符串给str变量,遇到EOF结束
        i = strlen(str);
        i--;  // 求结束符'\0'前一个位置
        for (j = 0; j < i; j++, i--) {//字符串反转
            tmp = str[i];
            str[i] = str[j];
            str[j] = tmp;
        }
        printf("%s\n", str);
    }

    return 0;
}

------解决方案--------------------
#include<stdio.h>
 int main()
 {
 int a,b,i;
 int n;
 while(scanf("%d",&n)!=EOF)
 scanf("%d",&a);
 i=1;
while(a!=0) /*这是一个靠除10取余来实现数的反转
{ 第一次循环:比如,123%10=3;
b=a%10; 然后,123/10=12;
printf("%d",b); 第二次循环:12%10=2;
a=a/10; 12/10=1;
i++; 第三次循环:1%10=1;
} 1/10=0;循环结束。
 printf("\n"); //printf("%d\n",b); 原来输入的123,按321输入了。这个循环很简单,就是把输入的
 return 0; 整数打散了,到过了输出。楼主仔细想想就出来了。不难理解。
 }
*/

i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
------解决方案--------------------
一些基础的程序还是自己琢磨地好,不然以后碰到问题就迷糊了
------解决方案--------------------
我重新写吧,提交后位置乱了。
#include<stdio.h>
 int main()
 {
 int a,b,i;
 int n;
 while(scanf("%d",&n)!=EOF)
 scanf("%d",&a);
 i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
 printf("\n");
 return 0;
 }

/*这是一个靠除10取余来实现数的反转,
第一次循环:比如,123%10=3;
然后,123/10=12;
第二次循环:12%10=2;
12/10=1;
第三次循环:1%10=1;
1/10=0;循环结束。
原来输入的123,按321输入了。这个循环很简单,就是把输入的 整数打散了,倒过来输出。楼主仔细想想就出来了。不难理解。
i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
------解决方案--------------------
#include <stdio.h>
 
 void Creat_str()
 {
  char ch;
 
  scanf("%c",&ch);