1樓:小陳
c語言執行程式為什麼沒有輸出數字,產生的原原因如下:1、輸入的格式不對要輸入「浮點數」並用 「逗號」 分隔輸入三個數兩個逗號後還要額外多加一回車才開始後面的流程,如果把scanf("%f,%f,%f",&a,&b,&c);改為scanf("%f%f%f",&a,&b,&c);就可以用空白符做分隔了。2、沒有輸出不知道計算的結果那演算法就沒有意義了。
輸出不一定是要列印到螢幕上的,可以是下乙個程式的輸入,可以是乙個檔案、一段語音、一張影象,甚至是機械人的步行動作等等。
初學c語言,幫我看看這個輸出結果為什麼是0?
2樓:嘿小盒子
1、因為你剛開始定義a,b是int型別的,整形的。
2、所以在a進行計算的時候會將12+這個算式(a=12+計算成24,計算機自動將a語句的結構儲存成整數型。
3、在你將b的值賦值為浮點型的a(b=(float)a;)時,結果其實應該是。
4、但是由於你並未給b改變型別,所以他還是乙個整形,在你結尾時引用lf浮點型的輸出方式進行輸出時,計算機識別不出來,所以結果為零。
3樓:鎮遠山神侍
你好。這個是跟計算機體系結構有關的:
c語言中,printf函式不會進行任何型別轉換,只是按照你給的格式從記憶體讀取值。
在計算機中,printf函式去訪問讀取記憶體資料時,訪問讀取浮點數和訪問讀取整數的暫存器是不一樣的。
你給的格式是去訪問讀取浮點數進行列印,卻給了整形變數,所以無法訪問讀取到變數的值。
如果你將變數b強制轉換為浮點型變數,輸出是會沒問題的。
這是我之前聽大神說的,具體的細節我也不清楚,給你作個參考。
上應該有很多這個資料,你可以查證一下。
4樓:網友
沒有報錯嗎?這是顯式轉換和隱式轉換和問題,不知道你強制轉換能不能轉換成功,一般寫**的時候都不用強制轉換,容易出問題。
5樓:網友
到a的時候就轉為整型了,直接轉為148然後轉型為float是最後結果可能就是這個。
6樓:杯具——悲劇
因為int型別的a 不能等於。
為什麼c語言的輸出結果是
7樓:
摘要。你好<>
c語言的輸出結果為0是因為在計算機中,變數在未被初始化前會被預設賦值為0。所以如果乙個變數被宣告但沒有初始化,那麼它的值就會是0哦。那麼什麼是變數的初始化呢?
在c語言中,變數的初始化是指給變數乙個初始值。可以在宣告變數時初始化,也可以在後續的程式中初始化。比如:
int a; /未初始化的變數aprintf("%d", a); 輸出結果為0int b = 10; /在宣告變數時初始化printf("%d", b); 輸出結果為10int c; /未初始化的變數cc = 5; /在後續程式中初始化printf("%d", c); 輸出結果為5所以,c語言的輸出結果為0很一般是因為變數未被初始化。如果需要輸出其他的值,可以在宣告變數時初始化,或在程式中進行初始化操作。<>
為什麼c語言的輸出結果是0
你好<>
c語言的輸出結果為0是因為在計算機中,變數在未被初始化前會被預設賦值為0。所以如果乙個漏尺缺變數返辯被宣告但沒有初始化,那麼它的值就會是0哦。那麼什麼是變數的初始困鎮化呢?
在c語言中,變數的初始化是指給變數乙個初始值。可以在宣告變數時初始化,也可以在後續的程式中初始化。比如:
int a; /未初始化的變數aprintf("%d", a); 輸出結果為0int b = 10; /在宣告變數時初始化printf("%d", b); 輸出結果為10int c; /未初始化的變數cc = 5; /在後續程式中初始化printf("%d", c); 輸出結果為5所以,c語言的輸出結果為0很一般是因為變數未被初始化。如果需要輸出其他的值,可以在宣告變數時初始化,或在程式中進行初始化操作。<>
幫我改一下。
可以在宣告變數時初始化,或在程式中進行初始化操作。
為什麼c語言的輸出結果是
8樓:
是因為在c語言中,整數除以整數會得到整數的枝雹滑結果,如果兩個整數相除得到的結果是小數,那麼c語言會將小數部分捨去,只保留整數部分。例如:``cint a = 5, b = 6;int c = a / b;printf("%d", c);`上面的**輸出的結果是0,因為5除以6得到肆渣的結果是,但是c語言會將小數部分捨去,只保留整數部分,即0。
如果想得到小數的結果,需要將其中乙個運算元轉換為浮點猛臘數,例如:``cint a = 5, b = 6;float c = float)a / b;printf("%f", c);`上面的**輸出的結果是,因為將a轉換為浮點數後再相除,得到的結果是。
為什麼c語言的輸出結果是
9樓:
在c語言中橡嫌,通常情況下,如果不對變數進行初始化,那麼該變數所在的記憶體位置的值是不確定的。因此,如果你沒有對乙個變數進行初始化或者賦值,輸出結果為0很可能是因為該變數所在的記憶體位置中帶如雹剛好被賦予了0這個值。舉例來說,如果你定義了乙個int型別的整數變數x,然後直接輸出它的值,而沒有對x進行初始化或者賦值,那蠢帆麼輸出結果為0的可能性就比較大,因為此時x所在的記憶體位置中的值是不確定的,它可能是0,也可能是任何其他的值。
為什麼c語言的輸出結果是
10樓:
摘要。親 您好 很高興為您服務 因為在使用c語言時,我們在程式中使用printf函式進行輸出,但是在輸出前,需要給該函式傳遞乙個引數,要輸出的內容。當傳遞的引數是整數型別時,printf函式預設按照十進位格式輸出 那麼,當需要輸出乙個整數時,在c語言中需要用到佔位符」%d」。
在使用printf函式時,我們需要把需要輸出的整數放入括號內,這些整數會依次傳遞給printf函式依次輸出 所以c語言的輸出結果是0
您好。能幫我看一下,這個**有問題嗎?輸出結果一直為0
親 您好 很高興為您服務 因為在使用c語言時,我們在程式中使用printf函式進行輸出,但是在輸出前,需要給該函式傳遞乙個引數,要輸出的內容。當傳遞的引數是輪雀握整數型別時,printf函式預設按照十進位格式輸出 那麼,當需要輸出乙個整數時,在c語言中需要用到佔位符歲液」%d」。在使用printf函式時,我們需要把需要輸出的整數臘慶放入括號內,這些整數會依次傳遞給printf函式依次輸出 所以c語言的輸出結果是0
輸胡粗出的結果是0,因為我們定義了乙個整數變數a,它的初值為0,並且我們用printf函式把a的值輸出了 而輸出結果為0還有其他的情況。例如悄差,如果乙個整型變數未被初始化,則它的值預設為0。當褲運鎮我們通過printf函式輸出這個變數時,輸出的結果也會是0。
同時,在不同的編譯器下,輸出0的原因可能也不盡相同 這樣的問題呢 親。
那這個應該怎麼改?
#include int main() 這樣兆源灶改 按照族扮這個**來裂漏改。
可以這樣的呢 親。
為什麼無論輸入什麼總是輸出0?
11樓:匿名使用者
定義資料型別時改為如下所示: long double a=2; int n,i=1,sum=0; 因為你在輸入時,輸入的型別是整數,試過了。
12樓:吉祥二進位
根據**分析,多數是資料型別的問題。
1、在sqrt()中幾乎都是double資料型別的。
2、float型別使用時,進行初始化不能用整數,比如你**中的 float x1=2; 這是錯誤的。
因為2是整型字面 常量。 正確的寫法是。
float x1 = ; //f是單精度浮點數的字尾 。
3、一般來說,涉及小數,統一使用double。
這個程式怎麼輸出是0?
13樓:網友
3/2的結果是1,整型除法做的是整除。
所以y = x + 3/2 就是 y = x + 1,所以y就是兩個都輸出0的原因是,y和x+3/2都是float,大小都是但是作為引數傳遞給printf函式的時候,都公升格為double了double大小是64bit,而windows是little endian
所以y和x+3/2作為32bit整型讀取的時候,讀到的是double的低32位,而作為double的ieee754表示裡面,低32位全部是0,所以作為整型輸出也是0
如果想知道y = 作為float的ieee754表示當作整型來看待是多少的話,可以執行。
printf("%d", *int*)&y));
14樓:白菜一顆
你換成%f輸出就好了,這好像是c裡面型別轉換的事。
15樓:merry丶小慧
這個,你是照著課本打的嗎?為什麼要return 0 呢?
c語言裡int與double是怎麼回事剛學
int 是整型變數 抄,double是雙精度浮點型 你這個計算,最好定義r,s,l用float或者double 否則,計算表示式3.14 r r相當於3 int r int r,變數會被捨棄小數取整再計算 不是四捨五入 include include int main int是整型,抄double是...
開關電源空載時輸出電壓低是怎麼回事
電腦的開關電源是多路輸出的開關電源,使用同一個變壓器,使用其中的一路電源作為主電源,參與反饋,一般以3.3v電源為基準。由於空載時負載小,所以3.3v電源反饋給控制器足夠高的訊號,控制器會將pwm訊號的佔空比調小,這樣,無穩壓的12v等訊號由於佔空比變小,導致電壓偏低 在正常工作時,由於3.3v的負...
剛開始看C語言,這個真的不知道怎麼回事
printf abc tde rf n 顯示abc之後 t是指列印tab 然後再列印de 然後 r是返回行首,即返回到a的前面,然後再列印f後換行 所以就顯示成了fabc de printf hijk tl bm n 顯示hijk之後 t是指列印tab 然後顯示l,再後 b指退格,即把l刪除了,最後...