| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖
标题:!!!各位高手,小弟新手,请进来帮帮忙.(谢谢)!!!
只看楼主 加入收藏
kikoaijun
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-12-4
收藏
 问题点数:0 回复次数:6 
!!!各位高手,小弟新手,请进来帮帮忙.(谢谢)!!!

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

2005-12-15 19:29
江大沙锅
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-12-15
收藏
得分: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;
}
2005-12-15 22:06
江大沙锅
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-12-15
收藏
得分:0 
//用队列算
#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;
}
2005-12-15 22:06
kikoaijun
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-12-4
收藏
得分:0 
我还是不懂,就是想要一个简单一点的,我刚看到指针,而且是要输入字符判断字符,过程是:输入多个字符,用两个指针指头和尾++,--来判断回文.麻烦各位了,迁就我这个菜鸟一点!!!
2005-12-15 22:57
ぜ无痕ぺ
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-12-13
收藏
得分:0 

#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编辑过]

2005-12-15 23:02
黑白格子布
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2005-12-11
收藏
得分:0 
他说是要两个指针分别指头尾吧

#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");
}

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


2005-12-16 18:33
kikoaijun
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-12-4
收藏
得分:0 
谢谢各位了,我懂了!!!(非常感谢)!!!
2005-12-18 11:55
快速回复:!!!各位高手,小弟新手,请进来帮帮忙.(谢谢)!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015558 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved