1樓:聽不清啊
s+=a比s=s+a執行的效率要高一些,執行效果是一樣的。
2樓:匿名使用者
從結果上看是一樣的,但是底層實現上,第一種寫法的效率要高一點。第一種寫法相當於先把a的值取出來,再加到s當中;而第二中寫法是分別將s,a取出來再做加法,結果再存回s裡面。
3樓:匿名使用者
你看嘛如果用第一個語句,迴圈到n=99+1的時候(這時求了1到99的和),再回到while條件,是滿足n<=100的,所以進行下一步s=s+n的運算,這時才加到了100.再往下進行n=n+1的時候已經超過條件101,就不能再求和了。如果用第二個語句到99=98+1的時候,求到了1到99的和,99沒有超過100,可以繼續迴圈,這時n=99+1,s=s+100,就求到了100的和啊,再繼續迴圈就超過了100,不能再算了。
他說的那個順序問題,其實我覺得就按步驟來做,如果滿足條件就進行下一步迴圈,你可以分成2步。你只要看這次的結果是否滿足條件,如果滿足,就進行,而進行出來的結果是已經得到的,暫時不用管他是否越界,下一步才是看是否越界,能否進行下一步迴圈其實我也是新手,但願能講清楚~共同進步~
4樓:匿名使用者
恩 ,同意zyh1141298056 的說法,一般講解c語言程式設計的書,只要是深入些的,都會講到記憶體操作和演算法的優化問題;
這兩種寫法雖然結果一樣,但第一種明顯比第二種效率更高,原因正如上面所說的,兩次記憶體的取存,自然比一次的更耗時間;
不過一般我們人為的看不出罷了,推薦用第一種。
5樓:匿名使用者
沒有區別的,看你習慣用哪個,你就用哪個
c語言中s+=a++ 是什麼意思?
6樓:匿名使用者
1.s+=a++等價於 s=s+a++;
等價於 s=s+a; a=a+1;
意思是: s自增a值以後,a再自增1。
2.要弄清楚表示式的具體含義,必須知道運算子運算的先後順序,然後分步進行解釋。
以下是運算子的優先順序別表:
7樓:匿名使用者
是s=s+a++的意思,其中a++是a=a+1的意思,但++在a後面表示後加加,是整個表示式運算結束後才執行a=a+1
8樓:匿名使用者
等價於s += a;
a = a + 1;
+= 為 加後賦值
++在變數後面是先使用變數, 然後再自加
如果在前面 就是先自加再使用.
這個是執行順序的問題(++, -- 都是), 和優先順序沒有關係
9樓:75_飛星
s=s+a++
其中發表示式a++的值是a,在語句執行之後a自加1
10樓:匿名使用者
這裡相當於2句
s += a; // 這裡相當於 s = s + a;
a++;
11樓:匿名使用者
s=s+a,a是用完後在後加1的
12樓:博爾思拓
首先你要明白什麼是表示式,還有變數。
a是一個變數。
a++,++a都是a加了1.
比如a原來是1,執行了a++或++a後,a變數的值就是2了
至於a++和++a的區別主要是在表示式上的區別。
++a是先執行了a加1後,參與表示式的計算。
a++是a先參與表示式的計算,後執行自加1.
比如:int a,b;
a=1;//如果你想把a的值1,付給b.那麼,但你又想使得a加1。你就可以這麼做
b=a++;//++在a之後,先把a的值付給b,然後再本身加1 。這時候b=1,a=2了。
//如果你還不懂得話。b=a++;的意思 就是b=a;a=a+1;這兩句意思
//而b=++a 就是 a=a+1;b=a;的意思
至於a++=a+a+1
好像寫錯了吧
是a+=a+a+1
優先順序等於 a=a+(a+a+1)//a+=b 是 a=a+b 的簡化
!= 不等於,是條件運算子,用來判斷真假的。
比如1!=2; 表示式的值就是假,也就是0;
c語言很多式子都是簡化的,這樣雖然可以節省**,卻比較讓人糊塗。
13樓:海笑認為
a++就是運算後+1,在表示式裡面的時候還是a而++a就是先a+1然後代入表示式計算。
!=是不等於的意思
c語言 求s=a+aa+aaa+aaaa+aa...a 的值
14樓:匿名使用者
#include
int main()
printf("s=%lld\n",s);
return 0;}
c語言中要寫表示s=(a+b+c)/2,為什麼要寫成s=1.0/2*(a+b+c);而不寫成s=(a+b+c)/2;呢?
15樓:匿名使用者
s=(a+b+c)/2
是整數操作
例如:1/2結果是0,3/2結果是1。
s=1.0/2*(a+b+c)
為浮點數操作
1.0/2結果是0.5。
C語言的問題,fread和fgets的區別是什麼
夜禮服假面 fread和 fgets的區別 fread 以位元組位計算長度,按照指定的長度和次數讀取資料,遇到結尾或完成指定長度讀取後停止.fgets 整行讀取,遇到回車換行或結尾停止.在文字方式時使用.讀字串函式fgets函式的功能是從指定的檔案中讀一個字串到字元陣列中,函式呼叫的形式為 fget...
c語言中 》和 的區別,c語言中 a a 和 a 的區別
1 指向不同 一般情況下用 只需要宣告一個結構體。格式是,結構體型別名 結構體名。然後用結構體名加 加域名就可以引用域 了。因為自動分配了結構體的記憶體。如同 int a 一樣。而用 則要宣告一個結構體的指標,還要手動開闢一個該結構體的記憶體,然後把返回的指標給宣告的結構體指標,才能用 正確引用。否...
c語言中f與lf有什麼區別,C語言問題 f和 lf的區別
lf n和 f n的區別為 輸入不同 輸出不同 精度損失不同。一 輸入不同 1 lf n lf n輸入資料時要求是float型別。2 f n f n輸入資料時要求是double型別。二 輸出不同 1 lf n double型別以 lf n格式輸出資料時不會自動轉成 lf n格式,會導致輸入值錯誤。2...