作者francis763 (暱稱很時尚,但別一直看)
看板HSNU_1115
標題[問題] QQ紹幫我看看
時間Tue Nov 13 15:54:44 2007
肏我到底哪裡寫錯了...
一次的紙筆測驗
[題目]
‧亂數產生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