看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): C 問題(Question):有關字串矩陣的問題 餵入的資料(Input): 小弟最近才開始自學C語言,對於字串這邊有很大的疑問 假設我今天令 char test[5][5] scanf "%s",test[0] 輸入test 這時候資料裡面應該是 0 1 2 3 4 0 t e s t 1 2 3 4 對吧? 但是我網上看到有人的程式碼是 #include <stdio.h> char stu[10][10]; int n; int sch[110]; int main() { int i, k, t; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%s %d %d %c %c %d", stu[i], &stu[i][0], &stu[i][1], &stu[i][2], &stu[i][3], &t); stu[i][4] = t + 1; } for (i = 0; i < n; i++) { if (stu[i][0] > 80 && stu[i][4] > 1) sch[i] += 8000; if (stu[i][0] > 85 && stu[i][1] > 80) sch[i] += 4000; if (stu[i][0] > 90) sch[i] += 2000; if (stu[i][0] > 85 && stu[i][3] == 'Y') sch[i] += 1000; if (stu[i][1] > 80 && stu[i][2] == 'Y') sch[i] += 850; } 在這個程式裡面,他的stu[i][0],不就指向當初輸入的stu[i]的第一個字母嗎?? 但是這邊程式也沒出錯 希望板上有沒有人能夠解釋一下 小弟GOOGLE了很久都看不太懂啊~~~~ -- ╭───╮ 29 柏組長眉頭一皺, \ ㄟˇㄏ / -⊙—⊙-+ 覺得該炸了嫌犯全家。 $snegi ▅▅▆ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.70.215.127 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1428083300.A.08A.html ※ 編輯: hugovan (219.70.215.127), 04/04/2015 01:49:35
Push5F: char str[10] ,str 是? &str[10]是? 04/04 01:57
ckvir: 裡面資料不是長那樣把 04/04 02:08
dirkc: 你的理解沒錯,他程式有邏輯上的不合理 04/04 07:46
dirkc: 例如%s將其當字串空間使用,%d又將第一字元空間當整數使用 04/04 07:59
TobyH4cker: 你在解題目嗎?把題目給出來比較有幫助: 04/05 04:37
TobyH4cker: http://ppt.cc/qlkg 04/05 04:37
TobyH4cker: 另外他的解答你也抄錯 http://pastebin.com/YBbeEn8G 04/05 04:41
TobyH4cker: 輸入的名字是存在stu[i] + 5,輸入的數字(成績)必 04/05 04:44
TobyH4cker: 不會大於255(0xFF),因此存在char不會有問題, 04/05 04:45
TobyH4cker: 以輸入測資YaoLin 87 82 Y N 0為例,在stu[0]中會是 04/05 04:47
TobyH4cker: 0 1 2 3 4 5 6 7 8 9 10 04/05 04:48
TobyH4cker: 0x87 0x82 Y N 0x00 Y a o L i n 04/05 04:48
TobyH4cker: 抱歉我忘了轉16進位,87 82是十進位,分別是0x57 0x52 04/05 04:49