【C语言】整型数字处理

本文介绍了C语言中处理整型数字的方法,包括统计数字个数、数字逆序和顺序输出。通过示例代码解释了如何实现这些操作,并讨论了在特定情况下可能遇到的问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整型数字处理

 

1.统计数字个数可以先给出一个例子,如该整型数字为n=12345678,要求其个数
方法:定义一个计数器count,当该整型数字n每次除以10,之后count+1,然后将整型数字n除以10之后的值赋给n,直到n等于0为止。
原因:当该整型数字n每次除以10时,因为n10两个数字都为整型,所以是整除,当n=1235678时,n/10等于1234567,就是说当该数字除以10时,等于抛掉个位,然后n=1234567。这就好比如我有总数是10个苹果,吃了一个,然后现在总数是9,我吃的苹果个数就相当于计数器。当我吃完所有的苹果,这时计数器的值就是苹果的总数目。所以当n=0时的count值就整形数字n的数字个数

 

#include <stdio.h>
int Number(int n)
{
	
    int count=0;
    while(n!=0)
    {
    	
        n/=10;
        count++;
    }
    return count;
}
int main()
{
	
    printf("%d\n",Number(12345678));
    printf("%d\n",Number(-1234567));
    return 0;
}

 

 

 

结果如下图。

 

但是该程序当n=0时,程序出现问题 

 

 

 

当像上图那样调用函数Number,结果如下图:

2.将数字逆序输出

整型数字n=12345678逆序输出是8 7 6 5 4 3 2 1,每次打印出来的就是刚刚在计算数字个数时抛掉的数字,所以只要将while的循环体改为如下:

void Number(int n)
{
	while(n!=0)
	{
		int s=n%10;
		printf("%d ",s);
		n/=10;
	}
	printf("\n");
}

3.将数字顺序输出

整形数字n=12345678 顺序输出是1 2 3 4 5 6 7 8,那是如何先输出的呢?要想输出1,那可以n除以10000000等于110000000可以写成10^7;要想是输出2,是2345678除以1000000等于21000000可以写成10^6……,要想输出8时,用8除以1等于81可以写成10^0。所以代码如下:

#include <stdio.h>

int  Number(int n)
{
	int count=0;
	while(n!=0)
	{
		n/=10;
		count++;
	}
	return count;
}

void Sort(int n)
{
	int s=1;
	for(int i=1;i<Number(n);i++)
	{
		s*=10;
	}
	while(n!=0)
	{
		printf("%d ",n/s);
		n%=s;
		s/=10;
	}
}

int main()
{
	Sort(12345678);
	return 0;
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值