2013-03-19 90 views
0

好吧,只是試圖弄清楚爲什麼這不會像0.00003那樣吐出應有的答案。作爲更大項目的一部分,如果此修復程序不適用於整個項目,將會發布該修復程序。簡單計算的問題

#include <stdio.h> 

#define INPUT_C 0.003 
#define H_FORWARD_CURRENT 100 


int main(void) { 
    float ib; 
    ib = INPUT_C/H_FORWARD_CURRENT; 
    printf("ib = %.5f", &ib); 
    return (0); 
} 
+0

的包括是stdio.h中庫和定義都有#標籤 – Angus 2013-03-19 04:20:27

回答

6

因爲你想打印的ib地址爲float:

printf("ib = %.5f", &ib); 

應該

printf("ib = %.5f", ib); 
+1

悲哀的是,編譯器會告訴OP這一點,如果他打開了警告。 – 2013-03-19 04:23:04

+1

@JohnZwinck是的,爲什麼總是至少應該用'-Wall -Wextra'編譯的另一個很好的例子。 – Yuushi 2013-03-19 04:25:43

3

你不需要ib前添加符號& operato in printf

printf("ib = %.5f", &ib); 
        ^wrong 

更正喜歡:

printf("ib = %.5f", ib); 
+0

剛開始的傢伙,感謝您的幫助 – Angus 2013-03-19 04:24:35

1

從& IB printf中刪除&()。

printf("ib = %.5f", ib);