maindouble a 1 1 printfd ,a 為什麼顯示是零

2021-05-30 16:37:44 字數 1476 閱讀 4575

1樓:匿名使用者

main()

在執行printf("%d",a)的時候,由於是%d格式,它會讀取a所指向的前兩個位元組,在a中,由於是double型,它的表示是用4個位元組,其中的前兩個位元組是0,如果只是想輸出a的整數部分可以替換成main()

2樓:匿名使用者

main()

3樓:關南珍

是你電腦的問題,是不是32位的?

我的電腦執行後結果如下:

-1717986918press any key to continue

若改為float結果也是是:

-1717986918press any key to continue

也就是記憶體溢位:很明顯1717986918是1100110011001100110011001100110

4樓:匿名使用者

double型別在記憶體中佔用8個位元組,long型別佔用4個,應該只是按長整形的方式輸出了後面四個位元組的內容吧。我的輸出是-1717986918。再具體我就不清楚了,我用的vc6。

5樓:

因為%d不是double型別的正確輸出格式

6樓:匿名使用者

%d是int型別的輸出格式,

應該是這樣的:

double a=1.1;

printf("%d",(int)a);

使用強制轉換(int)a,轉為int型

7樓:朝華景鑠

使用vc9.0編譯出來的結果是-1717986918

我認為是浮點數和整數在機器內部的儲存方式不同造成的。

8樓:匿名使用者

double型別請用 printf("\n%lf",a);

以下程式執行後的輸出結果是 main() {double a; int b; b=a=10/4; printf(「%d,%f\n」,b,a);}

9樓:匿名使用者

10/4得到的是整數2,將2賦給a,在輸出a是顯示2.000000

如果要得到2.500000,需要10.0/4或10/4.0

10樓:聽不清啊

這是因為10和4都是整數,兩個整數的商仍是一個整數,所以10/4是等於2而不是2.5

11樓:匿名使用者

因為10和4都是整.所以結果也是整.你把10或是4其中一個加一個.0結果就會有小數了.

12樓:匿名使用者

因為10和4都是整數,所以10/4的結果也是整數,得2而不是2.5

可以參考小學數**算

13樓:

b=a=10/4;這兒的執行是從右往左的,因為a是整型 ,所以10/4結果是2,而不是2.5,所以b=a時,也是2

為什麼1 1是,為什麼1 1是

這道題難道無數世界級數學家,至今仍未解開,來這裡的應該沒有數學家 1 1 2是為什麼?1 1 2 就是數學當中的公理,在數學中是不需要證明的。1 1 1 2 在現代的精密科學中,特別在數學和數理邏輯中,廣泛地運用著公理法。2 公理法是從某一科學的許多原理中,分出一部分最基本的概念和命題,對這些基本概...

為什麼我的顯示這樣的,是網路11,不是本地連線或者寬頻連線

就是個名字。你可以開啟網路共享中心,進介面卡設定裡改。不想彈出這個對話方塊,你可以在控制面板裡找到windows防火牆,把它關了就沒了 為什麼我的電腦顯示的連線是本地連線而不是寬頻連線?我用的是電信的。我隔壁的同事用的是聯通的,她的顯 聯通是用貓的吧,要新建寬頻連線來撥號聯網,你的電信是不是已經連了...

為什麼我的OPPOr11手機不能顯示特殊符號

你好,您檢查下您來的自 記憶體卡是否有插好了,您重新bai插拔一下du試試,也有可能 zhi是記憶體卡dao 與手機不相容導致的,您換張記憶體卡試試,或者將記憶體卡插到別的手機看能否顯示。若您還有其他的問題諮詢,您可以進入oppo企業平臺向客服諮詢提問喔 oppor11,左上角有一個禁止符號,是什麼...