c 的小問題,c 的一個小問題

2022-10-11 15:06:47 字數 1327 閱讀 3435

1樓:匿名使用者

這個,假設你的word[4]=;

這時 word.size() =4

那麼for迴圈這樣工作!

j=0 i=word.size() -1=3temp = word[i]; -->temp='d'

word[i] = word[j]; -->word[i]='a'

word[j] = temp; -->word[j]='d'

這時j=1,i=2

temp = word[i]; -->temp='c'

word[i] = word[j]; -->word[i]='b'

word[j] = temp; -->word[j]='c'

2樓:匿名使用者

word.size()返回串word的長度len,即i的初值為n,而j的初值為0,首次交換的是word[0]和word[n - 1],然後執行--i和++j,第二次交換word[1]和word[n - 2],以此類推......,直到j = i止。

交換過程是:

temp = word[i]; // 暫存word[i]

word[i] = word[j]; // 將word[j]付給qord[i]

word[j] = temp; // 再將word[i]賦給word[j]

如果將中間的一句改為word[j] = word[i];,則不能完成交換過程,

3樓:叫我啊

j 是記錄該字串的首地址位置

i 是最後一個位置··因為下標是從0開始 所以 word.size() - 1 表示他的末位置

然後對該字串一個一個字元取,i的位置往前走,j的位置往後走,直到i的位置跟j的位置相遇或者j的位置大於i的位置說明交換完了 迴圈體是做一個簡單的資料交換工作。

4樓:落葉繁華盡

char temp;//定義一個字元型的中間變數int i, j;

for (j = 0, i = word.size() - 1/*計算輸入字串的長度*/; j < i; -- i, ++ j)

//--i,++j迴圈完之後字串就逆置了

5樓:匿名使用者

abcdefghijklmn

j i

j指向的字元與i指向的字元進行交換。

6樓:匿名使用者

第一個與最後一個,第二個與倒數第二個……(依此類推)交換

7樓:匿名使用者

這是因為賦值語句決定的

問C語言的小問題,問一個C語言的小問題

你就把取值範圍理解成一個圓圈,int取值範圍 32768 32767 超過了32767 最大數 就繞一圈到 32768 最小數 再從最小數開始往上加 所以會是 1懂了麼 上面程式不能正確執行 就異常退出咯 得到的就是 1 為什麼不能正確執行 1 你的unsingned出錯 應該是unsigned啦 ...

c語言,小問題

樓主,經我除錯後,回答如下 希望能給你幫助!問題一 我的回答為什麼一定要加空格,可不可以取消空格。如隨機生成158,我要輸入1 5 8才算正確.回答 該程式中採用scanf語句來接收字元,scanf在接收到空格或者回車的時候才會認為輸入結束,所以必須要加空格才算正確。要想解決該問題,需要把隨機數儲存...

物理小問題,一個物理小問題

理想情況,不考慮空氣阻力等,只考慮外界重力的的情況下 水瓶和水都只受到重力的影響,以相同的重力加速度沿重力方向勻加速運動.直至落地.但是,在現實中,肯定有空氣,那麼我們在上述推論過程中再加上空氣阻力的影響,情況就不同了 瓶子受到重力和空氣阻力的雙重影響,這兩個力是方向相反的,那麼瓶子下降的加速度就會...