日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言如何計算一個整數的位數_C 語言

作者:菜菜菜三菜 ? 更新時間: 2022-12-11 編程語言

計算一個整數的位數

只需要設計一個計時器,因為C語言中除法只留下整數部分,所以可以拿數字/10;數字位數即為循環次數,待n為個位時n/10=0,然后循環結束。

#include<stdio.h>
int main()
{
	int n;
	int count = 0; 
	
	scanf("%d",&n);
	if(n == 0)//n為0的情況,個人感覺無位數,退出 
	{
		return 0;
	}
	else
	{
		while(n)
		{
			n=n/10;//每次去掉數字最后一位
			count++;//循環一次計數器+1
		}
	}
	printf("%d",count);
	
	return 0;
}

關于如何獲取整數各個位

對于這個在實際的編程題中應用比較多,做了一個總結。

基礎思路

...
int i=123,a;
a = i%10;
printf("a=%d",a);

輸出的便是i的個位數

a=3

然后知道通過 i/10 便可"清除"個位數

由此我們便可以通過循環此方法獲取各個位數

...
int i=123,a,b,c;
a = i%10;
i/=10;
b = i%10;
i/=10;
c = i%10;
i/=10;
printf("a=%d,b=%d,c=%d",a,b,c);

輸出的a,b,c便是 i 的個位數,十位數,百位數

于是我們便知道將整數反轉的方法

...
int i;
long rex = 0;//反轉后的整數
while(i != 0){
? ? rex = rex*10 + i % 10;
? ? i = i / 10;
}//溢出判斷暫時忽略

將整數反轉后那我們又可以得到將整數按位存入數組的方法

int i,j,count=0;
int nums[numsSize];//需要存入的數組
long rex = 0;
while(i != 0){
? ? rex = rex*10 + i % 10;
? ? i = i / 10;
}
...
while(rex != 0)
{
? ? j = rex % 10;//獲取個位數
? ? nums[count] = j;
? ? rex/=10;
? ? count++;
}

反之也可以將字符串轉化為整數,不過本質是一樣的,就不多說了。?

原文鏈接:https://blog.csdn.net/qq_43622870/article/details/102313154

欄目分類
最近更新