怎样操作一个数的每一位_zhengjiatao2002的博客

比如说,每一位都进行打印,或者每一位的和

就先%,之后再/

并且用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;
}

 

总结

  1. 想得到一个数的每一位就 % 然后 /

  2. 想得到n进制的就 %n 然后 /n

评论
暂无评论

登录后可发表评论

点击登录