如题,假设想要输出一个整数 n 的每一位,我们可以想到使用 n%10和 n /10,n的个位上的数值 = n%10;令n= n/10,则n的十位上的数值 =n%10······ 以此类推其余位便可求的。下面我们用代码实现:
#include <stdio.h>
int main()
{
int n;
printf("请输入一个整数:\n");
scanf("%d", &n);
while (n)
{
if (n < 0)
{
n = -n;
}
printf(" %d\n", n % 10);
n = n / 10;
}
system("pause");
return 0;
}
当然,除了上述方法之外还可以把整数n的每一位都存在数组里,再一一输出,代码实现如下:
#include <stdio.h>
int main()
{
int n,i;
int arr[10];
printf("请输入一个整数:\n");
scanf("%d", &n);
for (i = 0;i < 10;i++)
{
while (n)
{
if (n<0)
{
n = -n;
}
arr[i] = n % 10;
n = n / 10;
printf(" %d \n", arr[i]);
}
}
system("pause");
return 0;
}
除了这两种方法之外,还有一种方法也可以实现上述问题,就是利用递归函数可以调用自己本身的特点来代替上面的循环操作,代码实现如下:
#include <stdio.h>
void print_num(int n)
{
if (n != 0)
{
if (n<0)
{
n = -n;
}
printf(" %d \n", n % 10);
print_num(n / 10);
}
}
int main()
{
int n;
printf("请输入一个整数:\n");
scanf("%d", &n);
print_num(n);
system("pause ");
return 0;
}