二、簡單應用題
請編寫函數fun(),該函數的功能是判斷字符串是否為回文,若是則函數返回1,主函數中輸出YES;否則返回0,主函數中輸出NO;匚氖侵疙樧x和倒讀都一樣的字符串。
例如:字符串LEVEL是回文,而字符串123312就不是回文。
注意:部分源程序已存在文件kt11_2.cpp中。
請勿修改主函數main和其他函數中的任何內容,僅在函數fun的花括號中填寫若干語句。
文件kt11_2.cpp的內容如下:
#include
#include
#defineN80
intfun(char*str)
{
}
voidmain()
{ chars[N];
cout<<"Enterastring:"< gets(s); cout<<"\n\n"; puts(s); if(fun(s)) cout<<"YES\n"; else cout<<"NO\n"; } 【參考答案】 int fun(char *str) { int i,n=0,fg=1; char *p=str; while(*p) { n++; p++; } for(i=0;i if(str[i]==str[n-1-i]) ; else { fg=0; break; } return fg; } 【試題解析】 本題的解題思路是:先利用循環(huán)中指針的移動來求得字符串的長度n,然后用一個for循環(huán)依次取得數組中的前半部分元素,用取得的前半部分內的元素逐個與后半部分內的對應位置的元素進行比較,如果相同,不做任何工作,接著取下一個元素,繼續(xù)比較;如果不相同,可以判斷該字符串肯定不是回文,就給標志變量fg賦值0(fg的初始值為1)。最終把fg作為函數的返回值返回(fg值為1表明是回文,fg值為0表明不是回文)。 相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |