求助大侠解决c++
答案:3 悬赏:30 手机版
解决时间 2021-05-14 14:37
- 提问者网友:世勋超人
- 2021-05-14 03:29
设计一个算法判断顺序存放的字符串是否为回文(即正读和倒读相同)
最佳答案
- 五星知识达人网友:洎扰庸人
- 2021-05-14 04:40
程序代码如下:
#include <stdio.h>
#include <stdlib.h>
#define N 100
int stringlength(char *s)
{
int i;
for(i=0;s[i]!='\0';i++);
return i;
}
int ishuiwen(char *s)
{
int i=0;
int j;
int length=stringlength(s);
j=length-1;
while(s[i]==s[j]&&i<length/2)
{
i++,j--;
}
if(i==(length/2))return 1;
else return -1;
}
void main()
{
char string[N];//leel
printf("Please input string:\n");
gets(string);
int result=ishuiwen(string);
if(result==1)printf("%s is huiwen!\n",string);
if(result==-1)printf("%s is not huiwen!\n",string);
printf("Please input string:\n");
gets(string);
}
程序运行结果:
全部回答
- 1楼网友:英雄的欲望
- 2021-05-14 06:29
我提供一个思路,构造另外一个字符串,按照逆序从这个字符串中挨个取出字符顺序填入那个字符串,然后用一下字符串比较函数就可以了
- 2楼网友:忘川信使
- 2021-05-14 06:05
#include <stdio.h>
int charf(char d[],int k, int i)
{
if(d[k]==d[i-k]&&k==0)
return(1);
else if(d[k]==d[i-k])
charf(d,k-1,i);
else
return(0);
}
main()
{
int i=0,n=0;
char a,b[20];
while ((a=getchar())!=’\n’)
{
b[i]=a;
i++;
}
if(i%2==0)
n=charf(b,(i/2),i-1);
else
n=charf(b,(i/2-1),i-1);
if(n==0)
printf("不是回文");
else
printf("是回文");
getch();
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯