求助!!一道C 二維陣列的問題,為什麼輸出結果會是這樣

時間 2021-05-14 10:31:26

1樓:金色潛鳥

*pch[2]; 是指標陣列,有2個指標。

for(i=0;i<2;i++) pch[i]=ch[i];

讓指標 pch[0] 指向ch[0], 也就是指向 "2013",

pch[0][0] 就是 ch[0][0], 字元'2', pch[0][1] 就是 ch[0][1], 字元'0',

pch[0][2] 就是 ch[0][2], 字元'1', pch[0][3] 就是 ch[0][3], 字元'3',

讓指標 pch[1] 指向ch[1], 也就是指向 "0246"

pch[1][0] 就是 ch[1][0], 字元'0', pch[1][1] 就是 ch[0][1], 字元'2',

pch[1][2] 就是 ch[1][2], 字元'4', pch[1][3] 就是 ch[0][3], 字元'6',

for(i=0;i<2;i++) // i=0, 處理 "2013" 這行,i=1, 處理 "0246" 這行

for(j=0;pch[i][j]>='0'&&pch[i][j]<='9';j+=2) 是對 i 行中 第 j 個字元 作 處理

j 從0起,步長 j+=2,也就是 處理 j=0,j=2,j=4....

迴圈 是否結束 的 判斷 條件 是

pch[i][j]>='0'&&pch[i][j]<='9' -- 第 j 個字元 是數字 0到9 則迴圈,不是數字迴圈就結束,顯然,j=4的時候超出字串長度,不是數字 0到9了。所以只迴圈 j=0,j=2.

s=10*s+pch[i][j]-'0';

pch[i][j]-'0' 是把pch[i][j]字元值 『0' 換算成 算術值 0,』1『換算成 算術值1,』2『換算成 算術值2,

....』9『換算成 算術值9

迴圈順序:

i=0; j=0, 處理 "2013" 中 的2, i=0;j=2, 處理 "2013" 中的 1

i=1;j=0, 處理 "0246" 中的 0,i=1,j=1, 處理 「0246」 中 的 4

s=0;

s = 10*s + 2 得2

s= 10*s + 1 = 10*2 + 1 =21

s = 10*s + 0 = 10*21 + 0 = 210

s = 10*s + 4 = 10*210+4 = 2104

cout<

21210

2104

2樓:匿名使用者

小夥子 你執行第一個迴圈滿足i==2時才終止迴圈 當你執行第2個迴圈的時候陣列已經越界了 你還恆成立呢 細心點

求救求救,一道c++水題,關於二維陣列的,求大神**謝謝!!! 20

3樓:

#include

#include

int n,value;

int **s=null;

void prt()

{int i,j;

for(i=1;i

求助關於c語言一道選擇題,求助關於C語言一道選擇題 !

解析有問題。正確的解析應該是 do while 條件表示式2 條件表示式2成立次數為n2,則迴圈體b執行次數為n2 1.因為條件表示式2成立就要執行一次,還要加上進入迴圈時執行的那一次。而對於while 條件表示式1 迴圈體a 條件表示式1成立次數為n1,則迴圈體a執行次數為n1。基於上述分析 1 ...

求助一道高一數學,求助一道高一數學題

要求值域,先求定義域。2x 1在根號下,要 0,故x 1 2這題函式有兩項,一項帶根號,一項不帶,且x次數都為1,用換元法。令t sqrt 2x 1 則t 2 2x 1,x t 2 1 2y t 2 1 2 t 1 2t 2 t 1 2 t 0 是二次函式,下面只要用求二次函式值域的方法求就可以了。...

求助!一道物理題,一道物理題!!!!求助

質量 密度 體積 7.9千克 7.9 10 3千克 立方米 1立方分米由於鐵塊是正方體,所以稜長都是1分米,底面積是1平方分米壓強 壓力 面積 鐵塊重力 底面積 79牛 0.01平方米 7900帕 單位的換算我有些記不清了,但解題思路絕對正確,你可以自己再驗算一下,有助於加深理解。 東風懸崖 這道題...