C在一个新行中逐个写入数字,在扩展名中

Fav*_*las 7 c

我是C的新手,我不能为学校做一个简单的练习.

我想做这样的事情:

 Please insert a number: 12345
 five
 four
 three
 two
 one
Run Code Online (Sandbox Code Playgroud)

基本上,用户输入一个数字,并且程序在新行中写入从最后一个有效数字到最多的数字.

这与切换功能和基本编程技能有关.

我有这个:

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

int main()
{
    int num; printf("Please insert a number: "); scanf("%d", &num);
    switch(num){
    case 1:printf("One\n");break;
    case 2:printf("Two\n");break;
    case 3:printf("Three\n");break;
    case 4:printf("Four\n");break;
    case 5:printf("Five\n");break;
    case 6:printf("Six\n");break;
    case 7:printf("Seven\n");break;
    case 8:printf("Eight\n");break;
    case 9:printf("Nine\n");break;
    case 0:printf("Zero\n");break;
    }
} 
Run Code Online (Sandbox Code Playgroud)

我使用0到9之间的数字它可以正常工作,但是数字更大,然后它什么都不做.

我无法解决的第一个问题是,在数字中,获得数字位置.我相信在我的代码中,休息并没有做任何事......

对不起,如果我不能更好地解释我,但英语不是我的母语.

问候,

Favolas

############################## In Progress Solution(如果数字%10给出0- ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num; printf("Please insert a number: "); scanf("%d", &num);
    int i,digit;
    for (i = 0; num%10!=0;i++){
        digit = num % 10;
        switch(num){
        case 1:printf("One\n");break;
        case 2:printf("Two\n");break;
        case 3:printf("Three\n");break;
        case 4:printf("Four\n");break;
        case 5:printf("Five\n");break;
        case 6:printf("Six\n");break;
        case 7:printf("Seven\n");break;
        case 8:printf("Eight\n");break;
        case 9:printf("Nine\n");break;
        case 0:printf("Zero\n");break;
        }
        num = num / 10;
    }
} 
Run Code Online (Sandbox Code Playgroud)

pmg*_*pmg 8

号码123100 + 20 + 31*10^2 + 2*10^1 + 3*10^0.

您需要从输入中隔离各个数字.

提示:使用/%运算符

 12345 % 10 ==> 5
 12345 / 10 ==> 1234

 1234 % 10 ==> 4
 1234 / 10 ==> 123

 123 ... ... ...
Run Code Online (Sandbox Code Playgroud)