C++编回文,帮忙修改程序

来源:百度知道 编辑:UC知道 时间:2024/06/22 02:44:04
小弟用C++编的回文,就是不知道哪里错了,望哪位高手帮忙解决~~多谢多谢

#include<iostream>
#include <string>
using namespace std;
typedef struct Node{
char data;
struct Node *next;
}Node,*linkstack;
void Initstack();
void compare();
int i,n,m;char *t;linkstack link,top,base,p;
void main()
{cout<<"请输入字符串"<<endl;
;
i=0;
Initstack();
do {
compare();
} while(i>=0);
if(n==1)
cout<<"不是回文"<<endl;
if(n==0)
cout<<"是回文"<<endl;
}

void Initstack()
{for(i=0;i<strlen(t);i++)
{if(i==0)
{p=new Node;
p->data=t[i];
p->next=top;
base=p;
link=p->next;
}
else
{p=new Node;
p->data=t[i];
p->next=top;
p=link;
link=p->next;
}

}
link=base;
}
void compare()
{if(link->data!=t[i--])
n=1;
else {link=l

/*
基本上按照你的改好了。已经测试通过了。
主要问题是:开始是char* t没有初始化,没有为字符串分配空间。
链表初始化的地方有些问题。
递归调用得不好。
定义那么多全局变量是很不好的。本例中i就出了问题。需要多加一个i--才行。
*/

#include "stdio.h"
#include<iostream>
#include <string>
using namespace std;
typedef struct Node
{
char data;
struct Node *next;
}Node,*linkstack;
void Initstack();
void compare();
int i,n,m;char t[255];linkstack link,top,base,p;
void main()
{
cout<<"请输入字符串"<<endl;
cin >> t;
i=0;
Initstack();
i--;
do {
compare();
} while(i>=0);
if(n==1)
cout<<"不是回文"<<endl;
if(n==0)
cout<<"是回文"<<endl;
}

void Initstack()
{
for(i=0;i<strlen(t);i++)
{
if(i==0)
{
p=new Node;
p->data=t[i];
link = p;
b