我的程序能通过编译 但是就是产生不了回文字符串,请好心人帮看下这个小程序出了什么问题
不胜感谢!
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int M(int k,char *pi);
cout<<"输入"<<endl;
char a[50];
char *p;
cin>>a;
p=a;
int count=strlen(p);
M(count,p);
cout<<a<<endl;
return 0;
}
int M(int k,char *pi)//使得回文字符串最短的添加函数
{
bool W(int len,char *po);
int i;
for(i=0;i<k;i++)
{
if(W(k,(pi+i))==true)//判断是否有部分回文字符串
{
int j;
for(j=0;j<i;j++)
*(pi+k+j)=*(pi+2-j);//增加字符串,使其回文
break;//添加一次之后就退出函数
}
}
return 0;
}
bool W(int len,char *po)
{
int i;
for(i=0;i<len;i++)
if(*po!=*(po+(len-i-1)))
return false;
return true;
}
不胜感谢!
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int M(int k,char *pi);
cout<<"输入"<<endl;
char a[50];
char *p;
cin>>a;
p=a;
int count=strlen(p);
M(count,p);
cout<<a<<endl;
return 0;
}
int M(int k,char *pi)//使得回文字符串最短的添加函数
{
bool W(int len,char *po);
int i;
for(i=0;i<k;i++)
{
if(W(k,(pi+i))==true)//判断是否有部分回文字符串
{
int j;
for(j=0;j<i;j++)
*(pi+k+j)=*(pi+2-j);//增加字符串,使其回文
break;//添加一次之后就退出函数
}
}
return 0;
}
bool W(int len,char *po)
{
int i;
for(i=0;i<len;i++)
if(*po!=*(po+(len-i-1)))
return false;
return true;
}