C語言程式設計的小問題,C語言程式設計的乙個小問題

時間 2022-05-04 05:58:39

1樓:潑猴德拉

可能是因為你的ch 是char型別的

ch=xx[i][j]<<4; 就可能導致ch溢位

從而ch的值實際上根本不是xx[i][j]<<4

2樓:匿名使用者

if(ch<<4 <=32 || ch<<4 >100)ch=xx[i][j]<<4;

if(ch <=32 || ch >100)關鍵看這兩個,上面乙個ch實際沒有移位,而是用乙個臨時的變數儲存了ch移位的值,用的那個臨時變數比較,比較完了,棧消失,臨時變數也消失,而ch不變,下面的一種情況ch是變化了的.

你把完整的程式**帖上來吧.

3樓:匿名使用者

#include

void main()

執行下這個程式就知道了,i<<1和c<<1根本就不一樣.

我寫了個程式,試了一下,確實是不一樣的.

我想原因是這樣的:

1.char ch;

ch = 99;//99的二進位制是1100011ch = 99<<4;//此時ch為 110000,也就是48不滿足條件,xx[i][j]的值不變.

2.但是如果這樣

char ch;

ch = 99;

if(ch<<4 <=32 || ch<<4 >100)此時ch<<4的值並不是我們認為的48,它的高8位沒有被截去,它的值是1100011 0000=1584

滿足條件,xx[i][j]的值就變了.

所以兩段程式的值不一樣.

可以這樣修改程式

if((char)ch<<4 <=32 || (char)ch<<4 >100)

4樓:

兩段程式的作用是一樣的,但要注意的是ch的值有變化`` 如果執行有誤差,那應該就表示ch在別的地方有被引用!

c語言程式設計的小問題,乙個C語言程式設計的小問題

你也弄得太複雜了,各種陣列相互引用。首先,你只需要定義一次 結構體 pk,然後abcd用一句 pk a,b,c,d 就可以了。第二,為什麼會有 笑臉 很大的可能是 n j 1 0 在特定條件下賦值造成的,你需要檢查一下第一次發牌時前面幾張的條件。最後發乙個我寫的供參考。include include...

c語言程式設計問題,C語言程式設計問題

include void main else if b 由於b 1,所以 b的值為false,所以不進入else if b else printf d d d 由於d的值沒有改變,輸入初始值d 20 include main include main else if b 此時b 1,b 0為假els...

C語言簡單程式設計問題,C語言程式設計問題

接收字串要用gets c 不然只要接收到空格就停止了顯示字串長度可以用printf 5d strlen c 在前面包含 顯示字串要用puts c 函式 for迴圈的範圍沒有包括下面if c i a c i a include include define f 99 void main printf ...

c語言程式設計基礎問題,c語言程式設計求助

下面哪些是不合法的字元型常量 1.65 2.b 3.ab 不合法,只能乙個字元4 n 5 075 6 078 不合法,8進製沒有數符8。7 8 xaf 下面哪些是不合法的浮點數常量 1 12e7 2 12e7.2 不合法,指數部分必須是整數3 0.0 4 1e 10 5 105 6 0e0 7 6....

c語言程式設計問題請教,C語言程式設計問題請教

veket的小號 已測試,正確 c free 4.1 mingw 3.4.5 veket的小號 include void trimfrnt char int main void trimfrnt char s include char trimfrnt char s void main char t...