當前位置:首頁 » 編程語言 » c語言提取各個數位的數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言提取各個數位的數

發布時間: 2022-06-07 05:29:28

㈠ C++,如何提取數字的每一位

有兩種方法可以做到提取數字任意一位。

1 根據數學定義,利用除法和取余來獲取。

整型的除法會省略掉小數部分,所以可以除以10的對應位數次冪,來達到將要取的值移動到個位的效果,再用10取余,即可得到對應數字。

比如1234,取其百位數,就可以用1234/100%10=12%10=2從而得到百位數2.

以下函數的功能為將整型正整數反序輸出。原理為從低位到高位依次取出數值,並輸出。

#include<stdio.h>
voidreverse_int(intv)
{
while(v)
{
printf("%d",v%10);//輸出個位。
v/=10;//將下一位數字移動到個位。
}
}


2 利用sprintf函數,將整型數字轉為字元串,並對字元串進行處理。

sprintf的功能是格式化輸出到字元串,操作類似於printf,但輸出目標不是標准輸出,而是字元數組。

以下函數功能為,將整型正整數按位加空格輸出。

#include<stdio.h>
voidput_int_with_space(intv)
{
charstr[50];//定義一個足夠大的數組。
inti;

sprintf(str,"%d",v);//將v轉為字元串。
for(i=0;str[i];i++)
printf("%c",str[i]);//將每位後加空格輸出。
}

c語言提取字元串中的所有數字

#include<stdio.h>
int
main()
{
char
str[1000];//保存讀取到的字元串
long
sum=0,data[1000];
int
i=0,top=0;
printf("輸入字元串:\n");
scanf("%s",str);
while(str[i]!='\0')//未到字元串末尾
{
if(str[i]>='0'&&str[i]<='9')//如果是數字
sum=sum*10+(str[i]-'0');//連續數字轉換為數.
else
if(sum!=0)//保存這個數
{
data[top++]=sum;
sum=0;
}
i++;
}
if(sum!=0)//判斷最後一個字元是否是數
data[top++]=sum;
printf("字元串中的數字是:\n");
i=0;
while(i<top)
{
printf("%ld",data[i]);
if(i<top-1)//不列印最後一個逗號
printf(",");
i++;
}
printf("\n");
system("pause");
return
0;
}

㈢ C語言怎樣提取一個數的十位個位百位千位

設一個數為n,則在C語言中其個位、十位、百位、千位依次這樣計算:n/1%10,n/10%10,n/100%10,n/1000%10

代碼如下:

#include<stdio.h>

int main(){

int n = 123456;

int unitPlace = n / 1 % 10;

int tenPlace = n / 10 % 10;

int hundredPlace = n / 100 % 10;

int thousandPlace = n / 1000 % 10;

printf("個位:%d 十位:%d 百位:%d 千位:%d ", unitPlace, tenPlace, hundredPlace, thousandPlace);

getchar();

return 0;

}

運行結果如圖:

(3)c語言提取各個數位的數擴展閱讀

C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。

㈣ C語言中如何將一個數字的各個位上的數分別提取

#include<stdio.h>

int main()

{

int a;

int b[111]={0};//這里數組必須賦於初值,不然系統會隨機賦值,將輸出錯誤!賦值任何數

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

int i=0;

while(a!=0)

{

b[i]=a%10;//將各個位的數賦值於數組b[i] ;

a/=10; //現在數組b[i]記錄的是各個位上的數的反序;

i++;//i記錄這個數是幾位數 ;

}

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

{

printf("%d ",b[j]);//最後反序輸出數組b[j];

}

return 0;

}

有不理解的地方,歡迎追問。望採納!

㈤ 怎樣用C程序提取一個3位數的各個數位

如果簡單點就int i=123;int k,s;k=i%10;個位數s=(i-100)/10;十位數i=i/100;//百位數

#include

<stdio.h>

void

main()

{

int

a;

int

b,c,d;//各個位數上的數字

printf("請輸入一個三位數:");

scanf("%d",&a);

b=a/100;

//百位

c=(a-b*100)/10;

//十位

d=a%10;

//個位

printf("百位:%d,十位:%d,個位%d ",b,c,d);

printf("它們的和是:%d ",b+c+d);

}

(5)c語言提取各個數位的數擴展閱讀:

C語言有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型。C語言也有自身的不足,比如:C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。

C語言既有高級語言的特點,又具有匯編語言的特點;既是一個成功的系統設計語言,又是一個實用的程序設計語言;既能用來編寫不依賴計算機硬體的應用程序,又能用來編寫各種系統程序;是一種受歡迎、應用廣泛的程序設計語言。

㈥ c語言分離整數各個位上的數

我來做,你等一會兒就好。

㈦ 怎樣用c語言將任意一個數的各個位置上的數分離出來

我給你將x的各個位數分離在數組a中,a[0]個位,a[1]十位,a[2]百位……最後返回數據的位數
int fun(long x, int a[])
{ int i=0;
while(x)
{ a[i++]=x%10;
x/=10;
}
return i;
}

㈧ 用C語言如何提取一個數的各個數位上數字,在不知道是幾位數的情況下 PS:順便判斷是幾位數

#include<stdio.h>
voidmain()
{
intnum;
intcount=0;
scanf("%d",&num);
while(num!=0)
{
printf("%d",num%10);//提出當前個位
num=num/10;
count++;//累加位數
}
printf(" %d ",count);
}