看板 HSNU_1115 關於我們 聯絡資訊
肏我到底哪裡寫錯了... 一次的紙筆測驗 [題目] ‧亂數產生12*12的陣列 ‧#牆 .路 ‧除起點和終點,周圍一圈都是牆 ‧印出從起點走到終點的過程 ‧若走不到終點,則回起點並結束 [我的程式碼] #include <stdio.h> #include <stlib.h> #include <time.h> #include <string.h> void search (int, int); char z [12][12]; int p [12][12], c=0; int main (void) { int n[2], i=0, j=0; srand (time(NULL)); for (i=0, i<12; i++) { p [i][0] = p [0][i] = p [i][11] = p [11][i] = 0; z [i][0] = z [0][i] = z [i][11] = z [11][i] = '#'; } n [0] = (int) rand () %12; z [n [0]] [0] = '.'; p [n [0]] [0] = 1; c = n [1] = (int) rand () %12; z [n [1]] [11] = '.'; p [n [1]] [11] = 1; for (i = 0; i < 12; i++) printf("%c", z [i][0]); printf("\n"); for(i = 1; i < 11; i++); { printf("%c", z [i][0]); for(j = 1; j < 11; j++) { if((int) rand () %2) { z [i][j] = '.'; p [i][j] = 1; } else { z [i][j] = '#'; p [i][j] = 0; } printf("%c", z [i][j]); } printf("%c \n", z [i][11]); } for(i = 0; i < 12; i++) printf("# "); printf("\n"); system("PAUSE"); z[n [0][0] = '@'; for(i = 0; i < 12; i++) { for(j = 0; j < 12; j++) printf("%c ", z [i][j]); printf("\n"); } system("PAUSE"); search(n [0], 0); return 0; } void search (int a, int b) { int i = 0, j = 0; if(a == c && b == 11) { z [a][b] = '@'; p [a][b] = 0; for(i = 0; i < 12; i++) { for(j = 0; j < 12; j++) printf("%c", z [i][j]); printf("\n"); } system("PAUSE"); exit (1); } if(b + 1 <= 11 && p [a][b+1] == 1) { z [a][b + 1] = '@'; p [a][b + 1] = 0; for(i = 0; i < 12; i++) { for(j = 0; j < 12; j++) printf("%c ", z [i][j]); printf("\n"); } system("PAUSE"); search(a, b + 1); } if(a + 1 <= 11 && p [a + 1][b] == 1) { z [a + 1][b] = '@'; p [a + 1][b] = 0; for(i = 0; i < 12; i++) { for(j = 0; j < 12; j++) printf("%c ", z[i][j]); printf("\n"); } system("PAUSE"); search(a + 1, b); } if(b - 1 >= 0 && p [a][b - 1] == 1) { z [a][b - 1] = '@'; p [a][b - 1] = 0; for(i = 0; i < 12; i++) { for(j = 0; j < 12; j++) printf("%c ", z [i][j]); printf("\n"); } system("PAUSE"); search(a, b - 1); } if(a - 1 >= 0 && p [a - 1][b] == 1) { z [a - 1][b] = '@'; p [a - 1][b] = 0; for (i = 0; i < 12; i++) { for(j = 0; j < 12; j++) printf("%c ", z [i][j]); printf("\n"); } system("PAUSE"); search(a - 1, b); } } 幹你娘的 我想超久居然還錯... 阿泰可以的話也幫我看看吧... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.218.84
tommyccc2007:喔好麻煩喔ORZ 我在思量看看 11/13 15:57
p21077:你可以去 C-8-3-3的C_and_CPP版問 11/13 16:13
p21077:然後要問人前最好先把語法錯誤都先修完 11/13 16:13
p21077:像是for (i=0, i<12; i++) 這類型的錯誤最好都先修掉 11/13 16:14
p21077:附帶一題 C_and_CPP查"迷宮"有相關問題 11/13 16:15
tommyccc2007:你錯太多啦 11/13 16:18
wantai943:加個#include<iostream> 妳的問題就少一半了... 11/13 16:18
tommyccc2007:#include<iostream>加上去 你錯誤就少一半 11/13 16:19
tommyccc2007:還有地11行刮號內的void要刪掉 11/13 16:20
tommyccc2007:15行逗號換成分號 11/13 16:22
qilar:嗯嗯嗯......你錯太多了(不懂裝懂ing.....)這樣是不行的喔XD 11/13 20:13
francis763:喔逗號那是失誤...因為這是紙筆測驗,所以程式碼我是直 11/14 02:19
francis763:接在bbs上打的,難免有小錯誤...因為他不能在bbs上面作 11/14 02:19
francis763:debug或是compile...所以無從找起... 11/14 02:20
francis763:那種太蠢的錯誤應該就是我失手打錯的而已,那種真的在 11/14 02:21
francis763:compile的時候就會跳出來了 11/14 02:21
francis763:另外不引入iostream運算方式應該就可以,因為教授出題 11/14 02:22
francis763:的時候就是那樣寫,他是挖掉底下的部分回圈 11/14 02:23
tommyccc2007:喔 我知道了你是學C 我先學C++ C不用先宣告iostream 11/14 09:07