比如说,每一位都进行打印,或者每一位的和
就先%,之后再/
并且用while循环
循环条件写这个数本身
比如,打印一个数的每一位
#include<stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
int n = 0;
while(num)
{
n = num % 10;
printf("%d ", n);
num /= 10;
}
return 0;
}
不过这样我们会发现一个问题
就是它是倒着打印的
如果我们要正着打印的话
我们可以使用一个数组来存放它的每一位
然后用[ ]来一个一个来进行访问
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int num = 0;
int arr[50] = { 0 };
int i = 0;
int cnt = 0;
scanf("%d", &num);
while (num)
{
arr[i] = num % 10;
num /= 10;
i++;
cnt++;//这样我们就能知道打印了多少位了
}
for (i = cnt - 1; i >= 0; i--)
//这里cnt为啥要-1呢,因为你所有数都存放好了之后,cnt还+了一次
{
printf("%d ", arr[i]);
}
return 0;
}
接着我们还可以延伸到进制转换
比如10进制转换为6进制
让我们来试一下吧
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
int arr[50] = { 0 };
int i = 0;
int cnt = 0;
while (num)
{
arr[i] = num % 6;
num /= 6;
i++;
cnt++;
}
for (i = cnt - 1; i >= 0; i--)
{
printf("%d", arr[i]);
}
return 0;
}
总结
-
想得到一个数的每一位就 % 然后 /
-
想得到n进制的就 %n 然后 /n