兩個簡單的c語言問題請教

時間 2022-06-29 11:05:04

1樓:匿名使用者

1,i沒有初值,當然有問題,並且難道你想實現迴圈,囧,天才

2,i++*i++那是一個表示式,而不是兩個,不會出現先算一個再算另一個的情況。兩個都是7,你要改成printf("%d %d\n", i++,i++); 結果就是7 8了

2樓:

1.a[i] = i++;為什麼出錯?

很簡單你的i沒有值,還有,空間不固定

2.int i=7; printf("%d\n", i++*i++); 返回49?難道不該列印出56嗎?

這個裡面有後++ 所以是先運算*,後來才++所以才會有49

如果改成++i*++i就是別的值了、

3樓:

1. 沒有上下文,無法判斷,猜測可能是陣列越界。

2.++寫在變數後面運算優先順序低於乘法,所以你的那條printf語句等價於下面三條這語句:

int i = 7;

printf("%d\n", i * i);

i++;

i++;

這下你明白為什麼列印出來的是49了吧。這種題目也就當練習做做,自己寫程式的時候千萬別玩這些所謂的程式設計技巧,太晦澀,可讀性太差。

4樓:匿名使用者

1——陣列型別的說明應注意:

1)陣列的型別實際上是陣列元素的取值型別。

2)陣列名的書寫應符合識別符號的書寫規範。

3)陣列名不能與其他變數名相同。

4)常量表示式表示陣列元素的個數,但是其下標從0開始計算5)不能在方括號中用變數來表示元素的個數,但是可以用符號請看(5),a[i] = i++這個表示式中i是變數,不符合上面的(5),定義中不允許

2——i++的意思是先用i再相加,結果反回就是49,int i=7; printf("%d %d\n", i++*i++,i);這樣的話結果是49,8

你的表示式運算完i的值是8

例如i=7,a=i++,那麼運算完就是a=7,i=8;i++就是先要用好i的值然後再+1

講的不好,不知道明白了沒有~~~

5樓:匿名使用者

int i=7; printf("%d\n", i++*i++); 返回49?難道不該列印出56嗎?

ansi c沒有具體規定表示式中子表示式的求值順序,允許各系統各自安排。

對於這個式子,有的系統先把7作為左右i的值,相乘為49,在求出整個表示式的值後再實現i自加兩次,變成9。

你可以這樣編:

int i=7;

a=i++;

b=i++;

printf("%d\n",a*b);

c語言程式設計時碰到一下兩個問題,有兩個c語言程式設計問題問一下

由於要捨棄小數部分並且double表示的資料比int大得多,編譯器會有這樣的警告,讓你確認不會有溢位問題。可以考慮不用pow計算整數2的k次方 m 1 for i 0 i pow函式返回的是double型別 而你的m是int型 所以提示會有精度損失 有兩個c語言程式設計問題問一下 題目翻譯1.編寫一...

請教c語言中的問題,請教一個c語言中的問題?

不對int n n 意思是定義了一個指標變數n指向int型 n 等價於 n 就是先取n指向變數的值 然後讓n 1 n也就是讓n指向下一地址 而且這樣用必須先給n賦一個安全的地址才行 對啊,你用 幹什麼,有不是指標.就是 號自增 資深癩 int n n 或者int n n 以上都行 兩個的區別是 n ...

初學C請教簡單的問題,初學C ,請教一個簡單的問題

include using namespace std int main return 0 如上,養成用在mian 函式前加using namespace std 你就不用沒個輸入輸出都得加std了,方便些。而且你的while語句的條件表達也有些問題,因為判斷while函式條件的是bool語句,你這...