在C語言中把小數賦值給int型別的然後用d佔位符輸出,結果只輸出了整數部分

2021-05-15 07:49:56 字數 5122 閱讀 4215

1樓:f立地成佛

你前面定義的哪個型別,你可以試一試%l,小數定義也可以試一試double

c語言的%ld、%d、%u是啥意思啊?

2樓:匿名使用者

這幾個都是c語言格式化輸入輸出時使用的格式符號。其中%u為誤寫,實際為%u。

格式化輸出函式包括printf, fprintf, sprintf等等。

格式化輸入函式包括scanf, fscanf, sscanf等等。

這類函式在輸入輸出的時候都有一個引數為格式化字串(format_str), 裡面介紹了輸入輸出字串的格式,當需要輸入輸出變數值時,就需要用對應的格式化字元來替代。

題目中提到的三種格式分別對應:

%ld對應long型,即長整型。

%d對應int型,即整型。

%u對應unsigned int型,即無符號整型。

除此以外,還有如下常見的型別。

%hd對應short型,即短整型。

%hu對應unsigned short型,即無符號短整型。

%f對應float型,即單精度浮點型。

%lf對應double型,即雙精度浮點型。

%c對應char型,即字元型。

%s對應char *型,即字元指標/字元陣列(均可稱為字串)。

%x對應int型,不過是以16進位制輸入輸出。

%lx對應long型,同樣是16進位制形式。

以下是一個簡單的例子:

#include

int main()

如果輸入1 2 3

將輸出i = 1

l = 2

u = 3

3樓:啦啦啦咯哦

printf()函式是格式化輸出函式, 一般用於向標準輸出裝置按規定格式輸出資訊。printf()函式的呼叫格式為: printf("《格式化字串》", 《參量表》)。

格式輸出,它是c語言中產生格式化輸出的函式(在 stdio.h 中定義)。用於向終端(顯示器、控制檯等)輸出字元。

格式控制由要輸出的文字和資料格式說明組成。要輸出的的文字除了可以使用字母、數字、空格和一些數字符號以外,還可以使用一些轉義字元表示特殊的含義。

%d   有符號10進位制整數(%ld 長整型,%hd短整型 )%hu   無符號短整形(%u無符號整形,%lu無符號長整形)%i    有符號10進位制整數 (%i 和%d 沒有區別,%i 是老式寫法,都是整型格式)

%o   無符號8進位制整數

%u   無符號10進位制整數

%x   無符號的16進位制數字,並以小寫abcdef表示%x   無符號的16進位制數字,並以大寫abcdef表示%f   輸入輸出為浮點型 (%lf雙精度浮點型)%e/e 用科學表示格式的浮點數

%c 輸入輸出為單個字元

%s 輸入輸出為字串

4樓:匿名使用者

變數格式..例如printf("%d",a);雙引號裡的東東是由後面的變數的型別決定的,若a是long型,則用%ld,若是float型則用%f

5樓:匿名使用者

那些是格式佔位符 %id佔位符用於在螢幕中顯示長整型資料 %d佔位符用於在螢幕中顯示基本整型資料 %u佔位符用於在螢幕中顯示無符號整型資料 %c佔位符用於在螢幕中顯示字元型資料 %f佔位符用於在螢幕中顯示浮點型資料 %s佔位符用於在螢幕中顯示字串資料

6樓:匿名使用者

%ld、%d、%u 分別代表輸出資料格式的型別 分別是 長整型 整型 無符號整型

7樓:匿名使用者

%d:int(整形)

c語言裡,實型變數double和float 的輸出佔位符,%lf和%f為什麼在printf輸出後都

8樓:這個名有人取了

double精度更高,是指它儲存的小數位數更多,但是輸出預設都是6位小數,如果你想輸出更多小數,可以自己控制,比如 「%.10lf」 就輸出10位小數,望採納

9樓:萢萢

printf() 只會看到bai

雙精度數,printf 的 %f 格式總是du得到zhi double,所以在 printf() 中使用dao %f 跟 %lf 的輸出顯示效果專是一樣的。但是對於變數來說屬,double 型別比 float型別的精度要高。

c語言,什麼是佔位符

10樓:匿名使用者

c語言中的格式佔位du符:

%a,%a 讀入

zhi一個dao浮點值(僅c99有效)   回%c 讀入一個字元

%d 讀入十進位制答整數

%i 讀入十進位制,八進位制,十六進位制整數

%o 讀入八進位制整數

%x,%x 讀入十六進位制整數

%s 讀入一個字串,遇空格、製表符或換行符結束。

%f,%f,%e,%e,%g,%g 用來輸入實數,可以用小數形式或指數形式輸入。

%p 讀入一個指標

%u 讀入一個無符號十進位制整數

%n 至此已讀入值的等價字元數

% 掃描字符集合

%% 讀%符號

11樓:匿名使用者

print(「%c,%c」,c,d); //使用佔位符的例copy子

在這bai裡有兩個字元c,d,那麼也du就需要兩個佔位符所以zhi我們寫成%c,%c,還需要注意dao的是,佔位符要寫在」」內。

c語言中的格式佔位符:

%a,%a 讀入一個浮點值(僅c99有效)%c 讀入一個字元

%d 讀入十進位制整數

%i 讀入十進位制,八進位制,十六進位制整數

%o 讀入八進位制整數

%x,%x 讀入十六進位制整數

%s 讀入一個字串,遇空格、製表符或換行符結束。

%f,%f,%e,%e,%g,%g 用來輸入實數,可以用小數形式或指數形式輸入。

%p 讀入一個指標

%u 讀入一個無符號十進位制整數

%n 至此已讀入值的等價字元數

% 掃描字符集合

%% 讀%符號

12樓:

print(「%c,%c」,c,d); //使用佔位符的例子在這裡有兩個字元c,d,那麼也就需要兩個佔位符所以我們回寫成%c,%c,還需答要注意的是,佔位符要寫在」」內。

c語言中的格式佔位符:

%a,%a 讀入一個浮點值(僅c99有效)%c 讀入一個字元

%d 讀入十進位制整數

%i 讀入十進位制,八進位制,十六進位制整數

%o 讀入八進位制整數

%x,%x 讀入十六進位制整數

%s 讀入一個字串,遇空格、製表符或換行符結束。

%f,%f,%e,%e,%g,%g 用來輸入實數,可以用小數形式或指數形式輸入。

%p 讀入一個指標

%u 讀入一個無符號十進位制整數

%n 至此已讀入值的等價字元數

% 掃描字符集合

%% 讀%符號

c++中如何給一個int型別的變數賦值成一個以零開頭的整數

13樓:幻の上帝

int型別只是整數,和數學中的定義一樣,不管字首有幾個0,值都相等。

在c/c++中,整版數字面量權的字首0表示八進位制。所以int a;a = 0908;肯定編譯錯誤,因為9不是八進位制的合法數字。

按lz的要求,應該只是輸出樣式的問題。即使用int儲存,這種也很簡單,只用c/c++標準庫就可以實現,例如c風格的printf("%06d",a);或者利用c++標準i/o的cout<

====

[原創回答團]

14樓:千鋒教育

可以呼叫iomanip庫中

來的setfill和setw方法自來設定int型的前導0。

比如:#include

int main(int argc,char *argv)執行後輸出結果是:03

15樓:匿名使用者

是int的話,是不能你那樣賦值的。

為什麼要0開頭的整數?

可以 std::string str("0908");

std::stringstream ost;

ost<>a;

16樓:80晴天

您好,這種定義是不合法的,你可以把a定義為字串,然後對a賦值0908

string a;

a = 0908";

你剛才說的學號問題使其十九字串實現的~

17樓:匿名使用者

以0開頭的整數是八進位制,你給的例子是不合法的,八進位制的數只能是0-7.

18樓:柯墨

據我所知是不可以的,除非你將a轉為string型別 然後再在前面加個『0』賦給另一個string型別的b;

19樓:偷心的賊

a=0908是不行的,不過你可以輸出0908,這樣:

a=908;cout<<'0'<

20樓:匿名使用者

你可以使用c++提供的物件導向的設計能力,自己設計一個類,用於實現你的想法,只要為其提供運算子方面的支援,就能靈活地使用了。

21樓:喜歡黑

0908根本就不是個整數啊,怎麼用int

c語言中的格式佔位符有哪些

22樓:匿名使用者

%a,%a 讀入一個浮點值(僅c99有效)%c 讀入一個字元

%d 讀入十進位制內整數容

%i 讀入十進位制,八進位制,十六進位制整數

%o 讀入八進位制整數

%x,%x 讀入十六進位制整數

%s 讀入一個字串,遇空格、製表符或換行符結束。

%f,%f,%e,%e,%g,%g 用來輸入實數,可以用小數形式或指數形式輸入。

%p 讀入一個指標

%u 讀入一個無符號十進位制整數

%n 至此已讀入值的等價字元數

% 掃描字符集合

%% 讀%符號

c語言中怎麼給三維陣列賦值,C語言中怎麼給三維陣列賦值。

struct point point p1 point malloc 你需要的數目 sizeof point 完全不需要3維陣列,一個結構加個指標就可以了.c語言中三維陣列的賦值問題 int limit 4 5 2 你這樣定義是 int limit 20 2 int limit 4 5 2 應該是 ...

在c語言中如何把陣列清空,在C語言中如何把陣列清空

c語言貌似沒有把陣列清空的方法啊,或許你可以清除就把它賦值為0,這樣在形式上實現了清楚,不然的話只有動態申請的記憶體可以釋放。int a 4 1 通過陣列遍歷,逐個賦值為0。定義迴圈變數int i for i 0 i 4 i a i 0 該程式功能為遍歷陣列a,逐個將元素賦值為0,實現清空效果。有兩...

在C語言中,不能將常量賦值給表示式這句話該怎麼理解

比如 賦值一般是 int a 5 那麼就是賦值但是你要是 x y 5 這樣顯然是不對的這個是數學中的等式 不是c語言中的賦值 有問題請追問 滿意記得采納 所謂賦值,例如int x y x 6 x是有地址,在記憶體中是有空間的,你可以用 x來取x的地址,但是表示式,例如x y,這個整個表示式,是沒有地...