想大家請教個問題,c語言的
1樓:圖靈使者波比
小弟,這個程式出錯是正常的,首先你定義了乙個變數。而並沒有變數初始化,之後就去變數的位址,而且輸出的時候也有問題。%c是輸出那個字元用的。
t是取變數t位址。地質不是字元型別。所以輸出的時候出錯。
正確的做法應該是:先給變數初始化,例如:t=5;
#include
void main()
int t=5;
scanf("%d",&t);
printf("%d",t);
2樓:網友
我用了c++進行編譯是正確的,也可能是你的編譯器要求高吧,你把t進行了強制性轉換。這個在c++中接受了,不過在那裡就不一定了,我的程式是這樣的:
#include
main()
int t;
scanf("%c",&t);
printf("%c",t);
你用你的編譯下,你看會有什麼結果。這個程式的結果是不論你輸入字母還是數字都是以字元的形式輸出。
3樓:網友
這個程式也沒有什麼問題,就是沒有加標頭檔案而已。
#include
int main(void)
int t=5;
scanf("%c",&t);
printf("%d",t);
另外不要用void main(),嚴格來說這是錯誤的寫法。
當你用%c的格式控制輸入整型時,系統只將輸入的第一位的ascll碼,而後面的則存入快取中,你執行下面的程式試試。
#include
int main(void)
int t=5;
scanf("%c",&t);
printf("%d",t);
scanf("%d",&t);
printf("%d",t);
當你輸入2689時,然後回車,第一次輸出的是2的ascll碼,那50,第二次執行scanf時,由於快取中存在資料(689),所以會直接從快取中讀取資料,將其賦給變數t,而不會提示你輸入資料,然後執行printf,輸出t為689
4樓:亡靈龍殺手
c是表示char型別。
t是int型別。
比較嚴謹的編譯器是會報錯的。
5樓:網友
你沒有包含scanf的標頭檔案。
6樓:網友
main()
int t;
scanf("%d",&t);
是你程式問題。
c是字元型。
d才是整數形。
你的t定義為整數型,所以要用%d
7樓:網友
很可能你的程式真的有錯誤。你把錯誤資訊帖出來。
你的那幾行**顯然少了#include
8樓:網友
現在都用vc了。
要不你試試把%c換成%d看看。
C語言請教大家順序查詢的問題,C語言 請教大家一個順序查詢的問題
除了以上兩位說的以外,你的迴圈還有問題 while i n list i key 你的迴圈條件是list i key,即當list i key是執行迴圈既然list i key了,又怎麼可能有if key list j 對不?你輸入的數本身就是n個,所以不存在i n的條件,而且既然規定了總共就n個數...
C語言問題請教
選c 不知道對不對 呵呵 func2 int i 是函式呼叫 char st hello,friend 是字元陣列這個很難解釋 教材上有的 選c程式首先呼叫func1 i 輸出st 0 即h,然後判斷 i 0 3,執行i 2 i變成2,呼叫func2 i 輸出st 0 即l,然後判斷 i 2 3,執...
請教c語言輸入問題,請教一個c語言輸入問題
因為你向a輸入一個字元後 scanf c a 就是這個句子 要按一下回車,而回車也是字元,於是第二句 gets b 就把回車給吃進去了 也就是你說的 0 然後程式就執行到gets c 這一句了。記著,回車也是字元就是了。ps c語言很萌的。gets 從標準輸入流中讀取字串,直至接受到換行符或eof時...