输出一个整数的每一位。

解:方法一:

#include <stdio.h>

#include <string.h>

int main()

{

    int i, len;

    char num[100];

    printf("请输入一个整数:");

    scanf("%s", num);

    len = strlen(num);

    for (i = 0; i <= len - 1; i++)

    {

     printf("%c\n", num[i]);

    }

if (num[0] != 45)//45表示“-”的ASCII值

{

printf("位数为:%d\n", len);

}

else

{

len=len - 1;

printf("位数为:%d\n", len);

}

return 0;

}

结果1

请输入一个整数:72356

7

2

3

5

6

位数为:5

请按任意键继续. . .

结果2

请输入一个整数:-2378

-

2

3

7

8

位数为:4

请按任意键继续. . .

方法二:

程序:

#include<stdio.h>

int main()

{

int num = 0;

printf("请输入一个非负整数:");

scanf("%d", &num);

while (num)

{

printf("%d\t",num%10);

num /= 10;

}

return 0;

}

结果:

请输入一个非负整数:987

7       8       9       请按任意键继续. . .

方法三:

程序:

#include <stdio.h>

int print(int num)//递归实现

{

if (num > 9)

{

print(num/10);

}

printf("%d\t"num % 10);

}

int main()

{

int num = 0;

printf("请输入一个整数:");

scanf("%d", &num);

print(num);

return 0;

}

结果:

请输入一个整数:87654

8       7       6       5       4       请按任意键继续. . .