C語言怎麼求出乙個多位數每位的數字

2025-07-20 06:20:25 字數 4548 閱讀 4098

1樓:網友

#include

#include

void main()

執行示例:對於位數很多的多位數,用上述方法可以解決,如果定義為整型,則無法解決。

2樓:網友

int a;

a%10 是末尾。

a/10%10 是末第二位。

a/100%10 是末第三位。

依次類推。a/10..0 等於0時,結束。

c語言中如何將乙個數字的各個位上的數分別提取?

3樓:小黑哎啊

#include

int main()

/這裡陣列必須賦於初值,不然系統會隨機賦值,將輸出錯誤!

版賦值任何數。

scanf("%d",&a);//都行!

int i=0;

while(a!=0)

for(int j=i-1;j>=0;j--)return 0;

4樓:網友

假如有一源。

個數為n,bain<65535;

萬位上的du數值:

zhi(n/10000)%10;

千位上的數值:

n/1000)%10;

百位上的數值:(n/100)%10;

十位上的數值:(n/10)%10;

個位上的數值:n%10;

#include

#include

int main()

return 0;}

5樓:匿名使用者

解決步驟如下:1.首先獲取這個數字的位數大小2.

迴圈位數大小次,在迴圈中每次除以10,取莫,就得到了這個為的值,也就是這個位上的數字。然後儲存到你的陣列中,或者輸出。上述思路即可解決你的問題。

6樓:水晶葡萄

兩種方案來,直接用數學。

方法計算。自和轉為為字串。

第一:數學方法,對於任意乙個數n,要計算第site位的數,都可以用n/10^(site-1)%10

計算出來。比如計算123各位數:

int data=123;

printf("%d",data/100%10);

printf("%d",data/10%10);

printf("%d",data/1%10);

結果是:第二:轉化為字串,這裡要用到乙個函式itoa。同樣是計算123各個位數。

**:int data = 123;

char array[100];

itoa(data, array, 10); //轉化為字串printf("%c", array[0]);

printf("%c", array[1]);

printf("%c", array[2]);

結果和上面一樣!

兩種方式都能計算出,但是第一種方式計算未知位數的數時很麻煩,要首先計算出數的位數,相比較第二種就沒那問題,只要定義足夠大的陣列就不存在這個問題。

7樓:l_朵勒阿

除10取餘數,**示例:

while (i!=0)

8樓:匿名使用者

我的做法是先將整型轉為字串,再將轉後的字串取需要的字元轉為整型專,過程說起來複雜,屬但是寫起來只要兩行**就行了~#include

#include

int main(void)

怎麼用c語言把多位數的每一位拆出來。。。

9樓:網友

若兩位,個位等於該數除10取餘,十位等於該數除以10,同理三位數個位等於該數除以10去餘,而十位等於該數除以10之後,再除以10去餘,而百位等於該數除以100.其他同理。

10樓:擬鴻銘

用除法"/"和取模"%",比如3位整數x,你可以這樣:

int bai,shi,ge;

bai=x/100;

shi=(x-bai*100)%10;

ge=x%10;

11樓:網友

int a=0;

int i=0;

int b[10]=;//存放解析後的數字scanf("%d"&a);

for(i=0 ; i++)

你把頭尾完善一下就行了,這個在陣列b中是逆序拍的,輸出的時候你倒著輸出就可以了。

c語言中如何讀取多位數每一位的數字,在v c++平臺上,比如1234,具體語句,從定義開始。

12樓:開陽曦

提供一種方法供參考。

將多位數轉換為字串,然後字串裡的每個字元就是對應的數位。使用itoa函式如下:

#include

#include

int main ()

還有其他思路,例如逐個位元組的解釋多位數等等。

13樓:萌新妮可笑眯眯

int n = 1234;

while(n != 0)

差不多就是這樣就能把n從個位到最高位輸出。

14樓:白了少

int a=0,b=0;

scanf("%d",&a);

while(a/10)

b+=a;b的值就是各位的總和。

c語言中如何輸出任意乙個數字的每一位數字

15樓:諾諾百科

比較常用的思路就是不斷的除10,比如隨便乙個數字1234512345/10=1234

再把 1234/10=123

這樣就把這個數字按位拆開。

#include

#include

int main()

int inumber;

cout <<"請輸入一bai個數字:" >inumber;

定義乙個棧。

int stack;

int top=-1;

while (inumber % 10)

stack[++top]=inumber % 10);

inumber = inumber / 10;

printf("從高到低依次是:")

for(;top>=0;top--)

printf("%d",stack[top]);

system("pause");

return 0;

c語言,如何輸出每一位數字

16樓:風若遠去何人留

要輸出整型數值的每一位數字,關鍵在於將每乙個數字提取出來。

方法有很多,實現方式更是多種多樣,以最常見的兩種方式舉例說明:

一、傳統方法,通過除法和模除,取出每一位,並輸出。

#include

void output(int n)

反序輸出每一位值。

while(--l>=0)

printf("%d ", a[l]);

int main()

二、轉為字串,然後輸出字串各個字元。

由於在c語言中,有很多庫函式,比如itoa, sprintf等,都可以很方便的將整數轉為字串,而逐位輸出字串各個位元組值是很簡單的,所以可以通過轉為字串,再輸出的方式輸出各個位的值。

#include

void output(int n)

int main()

17樓:網友

個位**應該改成如下:

f=a-b*10000-c*1000-d*100-e*10

用數字a減去其他位數最後餘下個位數。

18樓:代號

根據你的提問,我只看了f的表示式,這麼麻煩幹嘛?直接f=a%10不就解決了?

19樓:網友

不懂你的f為什麼要這麼算。

直接f = a % 10不就可以了嗎。

c語言輸入乙個整數怎麼分別輸出它的每位上的數字

20樓:天雲一號

可以通過除法bai運算子。

du( / )和求餘運算子( %結合zhi迴圈來實現分別輸出乙個整dao

數的每位數專字。

具體實現方屬。

#include

void main()}

21樓:匿名使用者

經過測試發現你的程式沒有你說的問題,輸入3位數時工作正常。

22樓:網友

#include

void main()

void fun(int n)

for(m=m-1;m>=0;m--)

printf("%d ",b[m]);

printf("a;lfjkds ");

/也直接數du字zhi

按字元格。dao式專輸入屬。

#include

void main()

void fun(char *a)

c語言 判斷數的位數,C語言 判斷乙個數的位數

如下 include int main int a,b int i printf 請輸入乙個數字 scanf d a b a for i 0 a 1 i a a 10 printf d是 d位數 n b,i 思路 因為整數除以整數的結果是整數,所以乙個數每除以10,位數就少1,所以可以採用while...

求助 編寫C語言,輸入乙個三位數 如123 ,然後輸出結果是321 謝謝啦 5

求助 編寫c語言,輸入乙個三位數 如 然後輸出結果是.謝謝啦 測試通過,幾位都可以,只要在int允許範圍內。int reverse int n int m int k while n k n m m k n n return m void main int n scanf d n printf d ...

c語言簡單小題,乙個簡單的C語言題

樓主把 return n 這句給刪除了,這句沒有用。要返回值幹嘛,刪除了就能輸出結果了4000多。過早地遇到了return n,致使main函式執行提前結束,不會再執行printf return可以立即結束幾乎任何乙個函式,無論後面還剩下什麼語句,都不會再被執行。這裡的main 前面沒有給出返回型別...