首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求问一个C++程序,该怎么解决

2012-09-29 
求问一个C++程序int lenth(char a[]){int i;for(i0a[i]!0i++)return i}void main(){int i,j,lchar

求问一个C++程序
int lenth(char a[])
{int i;
for(i=0;a[i]!=0;i++);
return i;
}
void main(){
int i,j,l;
char a[50]
cin.gerline(a,50)
l=lenth(a);
for(i=0,j=l-1;i<j;i++,j--)
if(a[i]!=a[j])
break;
if(j<=i)
cout<<"yes";
else
cout<<"no";}



求解释这个程序是怎么运行的(头文件什么的省略了……),题目要求是判断是否回文
谢谢~~~~~

[解决办法]
左增右减的方法判断对应的数字是否相等,直到超过中间位置,如过中间有位置不相等,则结束比较。比较结束后根据左右索引的位置判断循环结束的原因,如果是循环自然结束,则所有的对应位置相等,是回文;否则不是。
[解决办法]
先搞清楚什么是回文
再去理解程序

否则就是本末倒置。
[解决办法]
同意楼上的
[解决办法]
"回文数"是一种数字。如:98789, 这个数字正读是98789,倒读也是98789
void main(){
int i,j;
char a[50];
cin.getline(a,50)
for(i=0,j=strlen(a);i<j;i++,j--)
if(a[i]!=a[j]){cout<<"no";break;}
cout<<"yes";
}
[解决办法]
根据楼主上传的代码,从总体上看这里有两个函数,一个是lenth函数,用来计算字符的长度;另一个就是主函数。在主函数里,先用getline的形式输入字符串,然后调用lenth函数计算字符串的长度。
for(i=0,j=l-1;i<j;i++,j--)
这一步是判断字符串的头第一个开始,尾部第一个开始判断
if(a[i]!=a[j])
break;
if(j<=i)
cout<<"yes";
else
cout<<"no";}
如果不同,就结束程序,如果相同,这判断头的第二个和尾部第二个是否相同,如此循环。后面的步骤比较简单就不说了,楼主应该懂的,呵呵


[解决办法]

探讨

先搞清楚什么是回文
再去理解程序

否则就是本末倒置。

热点排行