1樓:yhw
你輸出的是&y而不是y,&y是y的位址,是乙個整數。你用浮點的格式去輸出整數那輸出出來應該是這個整數的二進位製碼所對應的浮點數,不過由於二者的編碼機制,這個對應的浮點數大概率是0.00
2樓:圖靈小貓
我說一下幾個問題:
1.在主函式裡面,不需要申明變數y,如果宣告了,將函式返回值賦值給y,然後再列印。
2.主函式列印y值肯定是要在呼叫函式之後,否則你列印的y值,就是初始化時候的值,這也是為啥你一直輸出0的原因。
3.函式返回值,表示這個函式內部加工處理完輸出的值,這個輸出值(返回值)肯定是你計算後的結果,計算完的值儲存到臨時變數裡,進行輸出。
語法結構,函式定義還沒有搞清楚,所以請回歸課本。
3樓:nekosu
這滿屏的錯看得我頭疼。。。
首先,printf裡面不應該用&y,除非你想輸出y的位址。
其次,function的呼叫在printf後,則輸出時y還處在未賦值的情況。
再其次,function(y)是什麼意思完全不理解。按照你的意思應該是y=function(x),x是引數y是結果,而你的y作為了引數x沒用。。。
再再其次,為了讓function返回要麼把function定義為float
function
(intx);
要麼為void
function
(intx,
float*y
);我認為題主沒學到指標,應該是第一種。
再再再其次,function中計算出了y但是沒有返回,卻返回0。應該是return y;
最後,建議題主再回去看看書。
4樓:繁星
別寫return 0,如果寫return 0的意思是你這個子函式會給主函式返回乙個值0,應該是return (y),你試下,應該就對了
c語言 為什麼把整數以 f格式輸出是0 000?
crazydog 我繼續詳細說明下吧。首先C語言把a傳進printf,因為a是整型,所以不會自動轉成double型資料,直接將0x40000000傳進printf,而 f尋的是64位記憶體,也就是把0x0000000040000000這個記憶體中的資料當成浮點型輸出來,那浮點型的資料是多少呢,又是怎...
c語言為什麼輸入 乙個實數123 123輸出的結果會變?
林凱 簡單點說,十進位制數如何表示1 3呢,0.333333 再乘以幾個10也抹不掉小數點!二進位制數如何表示0.3呢?再乘以幾個2也抹不掉小數點!3.14159269不能用八位十進位制 表示 123.123同樣不能用二十三位的float表示 打比方和原理的分割線 浮點數由1位符號位 若干位指數字 ...
為什麼有C語言 有C 卻沒有C 語言?
Alds Nick C 這個名字是Rick Mascitti於1983年中所建議的,並於1983年12月首次使用。更早以前,尚在研究階段的發展中語言曾被稱為 new C 之後是 C with Classes 在電腦科學中,C 仍被稱為C語言的上層結構。它最後得名於C語言中的 操作符 其對變數的值進行...