當前位置:首頁 » 編程語言 » c語言輸出值為1
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言輸出值為1

發布時間: 2022-07-31 15:34:49

A. c語言吧。為什麼輸出會是1,而不是0.

printf
的參數並不會自動做類型轉換的。
例子中格式串中有「%f」,編譯器就會當後邊的參數是個浮點數,它不做類型檢查。
而把一個
int當成浮點數,因為兩種類型的存儲結構是完全不同的,後果就難以預料了,有可能程序崩潰,也可能正常運行,但得不到正確的結果。
具體到樓主這個問題,
把整數1當成浮點數處理,那就是符號位0,階碼0,尾數1,是非規范浮點數,不同編譯器處理結果可能不同。
所以,不要寫出這樣的代碼。

B. C語言中 什麼情況下結果是 1和0

#include<stdio.h>
main()
{
int a=100;
if(a>100) printf("%d\n",a>100); //a=100不大於100,所以不成立
else printf("%d\n",a<=100); //a=100成立,所以輸出(a<=100)表達式的結果,即:1
}
對於商上面這個演算法,無論a的值是多少,輸出的都是 1.

C. C語言:為什麼這道題目輸出結果為1,結題思路是什麼

定義一個變數a賦值為100
判斷如果100是不是大於100,很顯然結果不是,所以執行else.
就輸出1,在輸出的時候會有一個判斷,a<=100.是對的就為1,所以最後輸出的結果就為1.

D. c語言問題為什麼輸出為1

scanf在%c控制下只接收一個字元,你輸入的是100,1被c接收,00還留存在輸入緩沖區里……

E. C語言代碼如下: 運行結果是:1 為什麼我給a賦值是2啊,為什麼a會變成1

你括弧里是=符號,而不是==符號,因此不是賦值,而是邏輯運算
a初始賦值a=2,那麼a=1為假,輸出1
如果你想賦新的值,並輸出新的賦值,將if後面括弧里的=符號改為==

F. c語言問題 我的為什麼輸出一直為1

首先,你這個東西輸出的不是1,而是一個不確定值(IND),說明出現除零錯誤。
經過debug發現階乘出現0.很明顯,問題在於階乘時的變數''沒有初始化。初始化為1,你這個程序就能用了。
樓上搶先了,他就是正解。

G. C語言中 printf("%d\n",sizeof(void)); 輸出結果為1 為什麼

我在vc中試過了,結果是0
sizeof是取位元組運算符,void是空類型,sizeof(void)運算的結果是void類型的變數所佔的內存單元(即位元組數)數,我認為應該是0,你的輸出結果是1,可能你的版本和我的不一樣,使用的編譯器不一樣吧
你可以試試sizeof(int),int 類型的變數佔4個內存單元(4個位元組),所以結果為4
或sizeof(float)
float類型也佔四個位元組,所以輸出結果也為4
希望對你有所幫助

H. c語言為什麼輸出的是1

說起來有點麻煩的,主要是內存調用導致聲明的級別(這里是int)不同;
顯然級別最高的是外部聲明int i=1;(假設級別為1)
而在函數調用裡面只要級別跟它一樣的時候(即不再對i進行再次聲明,像main裡面就對i進行了3次的聲明,級別分別為2,3,4,因為i前面都有int還有代表級別規劃的{}),此時的i==1,顯然funct裡面因為輸出i比int i=5(級別為2)先,所以輸出的是1級別的i,即為i==1.
如果你覺得難理解的話,可以看這個程序:
#include<stdio.h>
void main()
{
int i=2;
{
int i=3;
{
int i=4;
}
}
printf("%d",i);
}它輸出的是2(i的級別為1,2,3)
如果只把int i=3的int去掉,它輸出的是3(i的級別分別是1,1,2);
如果只把int i=4的int去掉,它輸出的是2(i的級別分別是1,2,2);
反正是該死的{}和int作怪,跟i是不是外部變數沒關系,看這個代碼:
#include<stdio.h>
int i=1;
void f()
{
printf("%d\n",i);
int i=5;
}
void main()
{
i=2;//僅將int刪了,使這里i的級別變為1
{
int i=3;
{
int i=4;
}
}
f();//所以它輸出2而不是1
}

I. 這個c程序為什麼輸出結果為1

a > 100 或者說 a <= 100,這兩個表達式是布爾型數據,結果要麼是true(對應數字就是1),要麼是false(對應數字是0),很顯然if (a > 100)是不正確的,所以列印else的結果,這個結果是a <= 100,由於a是100,a <= 100這個表達式是true,對應的數字結果就是1。
在C語言中布爾值就是0和非0,0就是false,非0就是true。
不過這種表達式的結果類型是布爾型的值,就只有0和1。

J. c語言,第二個printf輸出的結果為什麼是1求解釋,在線等

初值a=3,b=2,c=1
a>b的結果為真,真在C需要中用1表示,所以a>b的結果就是1