2
3
4
5
6
7
8
9
10
今天回到學(xué)佼也沒有講課,因為老師忙著一些其它事,聽說好像是多媒體比賽的吧,要今天上交了。那我們只好回到課室里自己看書了,不過在這段時間里我們都沒有看什么書,只是大家聊了起來。我也插了嘴吹了幾句,可是很快就沒有心情了,唉!只好睡一睡吧。當(dāng)我休息了一會發(fā)現(xiàn)老師都已經(jīng)回來了,而且說讓我們今天上機(jī)房。今天是第一次上機(jī)房,不過如果不是什么事我也不愿上機(jī)房,因為我覺得聽老師講課還好。我們上到機(jī)房,老師給了一條程序我們,喔!這不是前兩天說要搞的那個諾漢塔嗎!而且是結(jié)合了圖形表示的。我們都興奮起來了,開始研究著這條程序。我開始執(zhí)行這個諾塔了,他給的參數(shù)不是很多,只是十個盤子而已,你知道我按了多長時間嗎?我一直按著來看也看了快一個5分鐘才看完啊,這個問題果然是復(fù)雜?粗@些圖畫演示讓我更加清晰的明白了諾漢塔的原理,這里我不敢自私,我把源程序也COPY回家了,以下就是了:
#include <conio.h>
#include <string.h>
char dd[10][20],space[20];
int a[11],b[11],c[11];
init()
{
int i,j;
for(i=0;i<20-1;i++) space[i]=' ';
space[i]='\0';
for(i=0;i<10;i++)
{ for(j=0;j<20-1;j++)dd[i][j]=' ';
dd[i][j]='\0';
for(j=9-i;j<=9+i;j++)dd[i][j]='a'+i;
}
for(i=0;i<10;i++) a[i]=i,b[i]=-1,c[i]=-1;
a[10]=2,b[10]=25,c[10]=50;
for(i=0;i<10;i++)
{
gotoxy(a[10],10+i);
cprintf("%s",dd[i]);
}
}
move(int *s,int *d)
{ int i,j;
for(i=0;s[i]==-1&&i<10;i++);
gotoxy(s[10],10+i);
cprintf("%s",space);
for(j=0;d[j]==-1&&j<10;j++);
j--;
gotoxy(d[10],10+j);
cprintf("%s",dd[s[i]]);
d[j]=s[i];s[i]=-1;
getche();
}
void hanoi(int n,int *s,int *w,int *d)
{ int i;
if(n==1)move(s,d);
else
{
hanoi(n-1,s,d,w);
move(s,d);
hanoi(n-1,w,s,d);
}
}
main()
{
clrscr();
init();
getche();
hanoi(10,a,b,c);
getche();
}
最后除了看了這條程序,老師還給我們試著用TC調(diào)試程序了。你知道我以前調(diào)試程序是怎樣的嗎?我就是直接ALT+F9看看有沒有出錯,如果有就修改,沒有則成功了?墒钦嫣煳艺嬲J(rèn)識到TC里調(diào)試程序的真正方法,其實TC里有一大推的調(diào)試工具,這是我以前一直沒有用過的,只知道有一個就是一步一步執(zhí)行,跟著其它就一無所知了。其實TC里可以把一些變量的值跟蹤顯示出來,這是調(diào)試程序的重要手段,以前不知道這個功能都是用筆寫在紙上的,現(xiàn)在可以很方便準(zhǔn)確的看出來了。
- 推薦給朋友
- 收藏此頁
·程序員考試補(bǔ)課筆記-第七天 (2004-12-27 13:28:00)
·程序員考試補(bǔ)課筆記-第六天 (2004-12-27 13:27:00)
·程序員考試補(bǔ)課筆記-第四天 (2004-12-27 13:26:00)
·程序員考試補(bǔ)課筆記-第三天 (2004-12-26 13:21:00)
·程序員考試補(bǔ)課筆記-第二天 (2004-12-26 13:20:00)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。