這個作業屬於那個課程
c語言程式設計ii
這個作業要求在**
第十一周作業要求
我在這個課程的目標是
能夠對相對複雜的問題,合理定義程式的多函式結構;能夠使用遞迴函式進行程式設計;掌握巨集的基本用法;掌握編譯預處理的概念
這個作業在哪個具體方面幫助我實現目標
鍛鍊了我的程式設計能力,加深了我對遞迴、結構的認識
參考文獻
c語言程式設計ii第十章
漢諾塔是乙個源於印度古老傳說的益智玩具。據說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片**圓盤,大梵天命令僧侶把圓盤移到另一根柱子上,並且規定:在小圓盤上不能放大圓盤,每次只能移動乙個圓盤。當所有圓盤都移到另一根柱子上時,世界就會毀滅。
請編寫程式,輸入漢諾塔圓片的數量,輸出移動漢諾塔的步驟。
輸入格式
圓盤數 起始柱 目的柱 過度柱
輸出格式
移動漢諾塔的步驟
每行顯示一步操作,具體格式為:
碟片號: 起始柱 -> 目的柱
其中碟片號從 1 開始由小到大順序編號。
輸入樣例
3a c b
輸出樣例
1: a -> c
2: a -> b
1: c -> b
3: a -> c
1: b -> a
2: b -> c
1: a -> c
#includevoid hanot(int n,char a,char c,char b);
int main(void)
void hanot(int n,char a,char c,char b) //一定要注意!!這不是塔a,c,b。是字元變數a.c.b。所以它裡面存的是字元a(塔),b(塔),c(塔)。作用是把字元變數a裡的(塔)上的盤子移動到字元變數c裡的(塔)上的盤子,借助字元變數b裡的(塔)。
具體思路:必須有三個塔才能搬,並且每個塔的作用可能每次都會不一樣,所以就得把塔設定為字元變數,形參char a是被搬動的塔,char c是目標塔,char b是中間塔。
遇到的問題:看不懂,
解決的方法:和室友交流,一起溝通,在2019//5//9已經完全懂了怎麼實現的了。
} i++; /*下乙個字母*/ }
str1[a]='\0'; /*新增字串結束標記*/
if(str1[a-1]==' ')
i=0;
while(str1[i]!='\0')
} /*判斷是否為could you*/
if(str1[i]=='c'&&str1[i+1]=='o'&&str1[i+2]=='u'&&str1[i+3]=='l'&&str1[i+4]=='d'&&str1[i+5]==' '&&str1[i+6]=='y'&&str1[i+7]=='o'&&str1[i+8]=='u')
} /*判斷i是否獨立(「獨立」是指被空格或標點符號分隔開的單詞)*/
if(str1[i]=='i'&&((str1[i-1]'z')&&(str1[i-1]'z'))&&((str1[i+1]'z')&&(str1[i+1]'z')))
/*判斷me是否獨立(「獨立」是指被空格或標點符號分隔開的單詞)*/
if((str1[i]=='m'&&str1[i+1]=='e')&&((str1[i-1]'z')&&(str1[i-1]'z'))&&((str1[i+2]'z')&&(str1[i+2]'z')))
i++;
} /*輸出改變後的字串,'8'轉義為空,('5''6')轉義為you,'7'轉義為you*/
printf("%s\nai: ",str[b]);
y=strlen(str1);
for(i=0;i#includevoid change(char str[1001],char str1[1001],int b);
void specific_change(char str1[1001]);
void printf_(char str1[1001]);
int main(void)
else
}else
else
else}}
}i++; /*下乙個字母*/
}str1[a]='\0'; /*新增字串結束標記*/
if(str1[a-1]==' ')
} void specific_change(char str1[1001]) /*轉義,轉換*/
}/*判斷是否為could you*/
if(str1[i]=='c'&&str1[i+1]=='o'&&str1[i+2]=='u'&&str1[i+3]=='l'&&str1[i+4]=='d'&&str1[i+5]==' '&&str1[i+6]=='y'&&str1[i+7]=='o'&&str1[i+8]=='u')
}/*判斷i是否獨立(「獨立」是指被空格或標點符號分隔開的單詞)*/
if(str1[i]=='i'&&((str1[i-1]'z')&&(str1[i-1]'z'))&&((str1[i+1]'z')&&(str1[i+1]'z')))
/*判斷me是否獨立(「獨立」是指被空格或標點符號分隔開的單詞)*/
if((str1[i]=='m'&&str1[i+1]=='e')&&((str1[i-1]'z')&&(str1[i-1]'z'))&&((str1[i+2]'z')&&(str1[i+2]'z')))
i++;
}}void printf_(char str1[1001]) /*輸出改變後的字串,'8'轉義為空,('5''6')轉義為you,'7'轉義為you*/
return 0;
}void queen(int i,int j)
if(check(i,j)==1); 結構指標next指向下乙個同型別的結構首位址,可以通過next找到下乙個結構。
2019春第十一周作業
這個作業屬於哪個課程 c語言程式設計ii 這個作業要求在 我在這個課程的目標是 學會c語言,能用其編寫出實用程式 這個作業在那個具體方面幫助我實現目標 遞迴,漢諾塔問題 參考文獻 c語言程式設計ii 漢諾塔是乙個源於印度古老傳說的益智玩具。據說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下...
2019春第十一周作業
這個作業屬於那個課程 c語言程式設計 這個作業要求在 我在這個課程的目標是 學會遞迴 這個作業在哪個具體方面幫助我實現目標 漢諾塔參考文獻 單選題 7 1 漢諾塔問題 10 分 漢諾塔是乙個源於印度古老傳說的益智玩具。據說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著6...
2019春第十一周作業
這個作業屬於那個課程 c語言程式設計2 這個作業要求在 我在這個課程的目標是 理解什麼是遞迴函式 這個作業在那個具體方面幫助我實現目標 掌握如何運用遞迴函式 參考文獻 2019春第十一周作業 基礎題 7 1 漢諾塔問題 10 分 漢諾塔是乙個源於印度古老傳說的益智玩具。據說大梵天創造世界的時候做了三...