C語言處理數字(判斷數字的位數、順序輸出數字、逆序輸出數字)
學習了處理數字的辦法,如何判斷一個數是幾位數,如何將他順序輸出,如何將他逆序輸出。在生活中,用處特別大。
1、判斷數字位數。
首先,我們來看一下如何判斷給出的數是幾位數。次判斷方法由兩句核心語句組成:
intcount = 0;
while(n !=0) //
{
count++; //
n /=10; //
}
首先判斷數是否為零,若不為零,位數加一,再丟棄個位,直到數為零時,迴圈結束輸出位數。
2、順序輸出這個數。
在順序輸出中,我們要呼叫判斷位數的函式。我們還需要定義一個power數,用來儲存10的次方數。首先呼叫它是一個幾位數,再利用迴圈將power賦值成10的位數減一次方,用數除power,得到最高位,用數餘power丟棄最高位,再將power除十去位,再進行迴圈。直到數為零,迴圈結束。
核心語句:
int power = 1;
for(int r = 1;r <= count-1;r++)
{
power*=10;
}
while(n!=0)
{
printf("%d",n/power); //得到最高位
n %=power; //丟棄最高位
power/=10;
}
3、逆序輸出這個數
相比順序,逆序輸出更加簡單,首先判斷他是否為零,再將它餘十得出最小位,輸出後再除十,丟棄最小位。
核心語句:
while(n != 0)
{
count= n%10; //得到最小位
printf("%d\n",count); //輸出最小位
n /=10; //拋棄最小位
}
以下為原始碼:
//判斷一個數是幾位數
#include<stdio.h>
int GetNumbers(int n)
{
int count =0;
while(n !=0) //判斷他是一個非零的數
{
count++; //當他為非零數時,位數加一
n /=10; //丟棄個位
}
returncount;
}
int main()
{
printf("此數字為%d位數\n",GetNumbers(57777));
printf("此數字為%d位數\n",GetNumbers(503768));
return 0;
}
//逆序輸出一個數
#include<stdio.h>
int PrintReverse(int n)
{
int count =0;
while(n !=0)
{
count= n%10; //得到最小位
printf("%d\n",count); //輸出最小位
n /=10; //拋棄最小位
}
return 0;
}
int main()
{
PrintReverse(122562);
return 0;
}
//順序輸出一個數
#include<stdio.h>
int GetNumbers(int n)
{
int count =0;
while(n !=0)
{
count++;
n /=10;
}
returncount;
}
int PrintOrder(int n)
{
int count =GetNumbers(n);
int power =1;
for(int r =1;r <= count-1;r++)
{
power*=10;
}
while(n!=0)
{
printf("%d",n/power); //得到最高位
n %=power; //丟棄最高位
power/=10;
}
return 0;
}
int main()
{
PrintOrder(12345);
return 0;
}