[問題] 可以告訴我程式的錯誤在哪裡嘛?

看板C_and_CPP (C/C++)作者 (the day)時間16年前 (2010/03/06 16:07), 編輯推噓3(308)
留言11則, 4人參與, 最新討論串1/1
這是我寫的程式 #include<stdio.h> #define row 2 #define col 10 int main() { char m1[row][col]="int main()"; @ char m2[row][col]="{"; @@ for(i=0;i<row;i++){ for(j=0;j<col;j++) { if(m1[i][j]=='\0'){ @@@ break; } else m2[i][j]=m1[i][j]; ^^^ m2[i][j]='\0'; ### } } for(i=0;i<row;i++) {printf("[%d][%d]=%s\n",i,j,m2[i][j]); *** } system("pause"); return 0; } 我使用的是 visual studio 2005 然後他跟我說 我的錯誤是 error C2143: 語法錯誤 : 遺漏 ';' (在 '型別' 之前) < @ 那行> error C2143: 語法錯誤 : 遺漏 ';' (在 '型別' 之前) < @@那行> error C2109: 註標必須使用在陣列或指標型別上 <@@@那行> error C2109: 註標必須使用在陣列或指標型別上 <^^^那行> error C2109: 註標必須使用在陣列或指標型別上 <###那行> error C2109: 註標必須使用在陣列或指標型別上 <***那行> 標示的有點亂 請見諒 請高手能點出我的錯誤是什麼 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.7.114

03/06 16:10, , 1F
你的整個程式應該要用 int main() { } 包起來
03/06 16:10, 1F
謝謝j大 我剛剛忘記複製那段過來了 謝謝你的提醒 ※ 編輯: qrslrhko 來自: 112.104.7.114 (03/06 16:16) ※ 編輯: qrslrhko 來自: 112.104.7.114 (03/06 16:16) ※ 編輯: qrslrhko 來自: 112.104.7.114 (03/06 16:17)

03/06 16:19, , 2F
把m1與m2的宣告後面, "..."; 用{}像 {"..."}; 括起來.
03/06 16:19, 2F

03/06 16:19, , 3F
其實我看不懂你的程式要做什麼 可以簡單講解一下嗎?
03/06 16:19, 3F

03/06 16:19, , 4F
另外, 跑迴圈用的i, j好像沒看到宣告??
03/06 16:19, 4F

03/06 16:21, , 5F
最後印結果的那行也有問題, 沒有j, 而且這樣印%s等著掛.
03/06 16:21, 5F

03/06 16:22, , 6F
做什麼喔, 大概是從m1[][] copy 字元進m2並印出來吧XD
03/06 16:22, 6F
V大好厲害喔 知道我要做什麼 其實我要做的作業是做出兩個二維有字串的矩陣 因為一直想不到要怎麼做 想先從一個小小的程式 試試看 然後第一個矩陣 對到第二個矩陣 然後第一個矩陣的某些字元 可以對到第二個矩陣一樣的字元 請問這樣做的出嘛? ※ 編輯: qrslrhko 來自: 112.104.7.114 (03/06 16:30)

03/06 16:37, , 7F
你的意思是m1某些字元複製到m2同樣的位置上嗎?
03/06 16:37, 7F

03/06 16:39, , 8F
03/06 16:39, 8F

03/06 16:43, , 9F
當然可以啊, 以你的程式來說, m2[i][j]='\0';可能要
03/06 16:43, 9F

03/06 16:44, , 10F
放在if前面, 做為不複製值時的預設值
03/06 16:44, 10F

03/06 16:45, , 11F
在else區塊內判斷m1[i][j]是不是要複製的字元, 再複製
03/06 16:45, 11F
文章代碼(AID): #1BaWrDls (C_and_CPP)
文章代碼(AID): #1BaWrDls (C_and_CPP)