当前位置: 代码迷 >> C语言 >> !!!各位高手,小弟新手,请进来帮帮忙.(谢谢)!!!
  详细解决方案

!!!各位高手,小弟新手,请进来帮帮忙.(谢谢)!!!

热度:136   发布时间:2005-12-15 19:29:00.0
!!!各位高手,小弟新手,请进来帮帮忙.(谢谢)!!!

输入多个字符用两个指针分别指向字符的头和尾,检查是否是回文.
请务必帮忙(谢谢)!!!!!!!!!(我是菜鸟!!!!!)


----------------解决方案--------------------------------------------------------
//一般算法
#include<iostream.h>
#include<malloc.h>
#include<cstdlib>
#include<stdio.h>
#define ADD 20
void main()
{
int size=20;
char *shaguo=(char *)malloc(size*sizeof(char));
char c;
cout<<"请输入字符串"<<endl;
int i=0,j;
while((c=getchar())!='\n')
{
if(i==size)
{
shaguo=(char*)realloc(shaguo,(size+ADD)*sizeof(char));
size+=ADD;
}
shaguo[i++]=c;
}
j=i-1;
for(i=0;i<=j;i++,j--)
if(shaguo[i]!=shaguo[j])
{
cout<<"不是回文"<<endl;
exit(1);
}
if(i>=j)
cout<<"是回文"<<endl;
}
----------------解决方案--------------------------------------------------------
//用队列算
#include<iostream.h>
#include<deque>
#include<stdio.h>
#include<cstdlib>
using namespace std;
void main()
{
deque<char>shaguo;
cout<<"输入字符串"<<endl;
char c;
while((c=getchar())!='\n')
shaguo.push_back(c);
while(!shaguo.empty())
{
if(shaguo.front()==shaguo.back())
{
shaguo.pop_back();
shaguo.pop_front();
}
else
{
cout<<"不是回文"<<endl;
system("pause");
exit(1);
}
}
cout<<"是回文"<<endl;
}
----------------解决方案--------------------------------------------------------
我还是不懂,就是想要一个简单一点的,我刚看到指针,而且是要输入字符判断字符,过程是:输入多个字符,用两个指针指头和尾++,--来判断回文.麻烦各位了,迁就我这个菜鸟一点!!!
----------------解决方案--------------------------------------------------------

#include<stdio.h>
#include<string.h>

void main()
{
char a[100],*p,*q;
int i, j, n;
scanf("%s",a);
n=strlen(a);
p=q=a;
for(i=0;i<n/2;i++)
{
if(*(p+i)!=*(q+n-i-1))
break;
}
if(i==n/2)

printf("是回文\n");
else printf("不是回文\n");
}

[此贴子已经被作者于2005-12-15 23:25:20编辑过]


----------------解决方案--------------------------------------------------------
他说是要两个指针分别指头尾吧

#include<stdio.h>
#include<string.h>

void main()
{
char a[100],*p,*q;
int n;
scanf("%s",a);
n=strlen(a);
for(p=a,q=a+n-1;p<q;p++,q--)
{
if(*p!=*q)
break;
}
if(p>=q)
printf("是回文\n");
else printf("不是回文\n");
}

感觉没问题了~~~~~~大家帮忙看~~~~~~~~~


----------------解决方案--------------------------------------------------------
谢谢各位了,我懂了!!!(非常感谢)!!!
----------------解决方案--------------------------------------------------------
  相关解决方案