4. (C语言)从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)
3个回答
展开全部
#include<stdio.h>
#include<string.h>
void main()
{
char str[100];
int len,i,flag=1;
gets(str);
len=strlen(str);
for(i=0;i<len/2;i++)
if(str[i]!=str[len-1-i]) {flag=0;break;}
if(flag) printf("是回文\n");
else
printf("不是回文\n");
}
#include<string.h>
void main()
{
char str[100];
int len,i,flag=1;
gets(str);
len=strlen(str);
for(i=0;i<len/2;i++)
if(str[i]!=str[len-1-i]) {flag=0;break;}
if(flag) printf("是回文\n");
else
printf("不是回文\n");
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
#define MAX 80
void main()
{
char *str;
int flag;
int pal(char *str);
if((str=(char *)malloc(MAX))==NULL)
{
printf("ERROR");
exit(0);
}
printf("input:");
scanf("%s",str);
while(*str!='#')
{
flag=pal(str);
if(flag)
printf("%s shi",str);
else
printf("%s bu shi",str);
}
free(str);
}
int pal(char *str)
{
char *p,*q;
p=str;
q=str;
while(*q!='\0')
q++;
q--;
while(p<q)
if(*p==*q)
{
p++;
q--;
}
else
break;
return (p>=q)
}
#include <stdlib.h>
#define MAX 80
void main()
{
char *str;
int flag;
int pal(char *str);
if((str=(char *)malloc(MAX))==NULL)
{
printf("ERROR");
exit(0);
}
printf("input:");
scanf("%s",str);
while(*str!='#')
{
flag=pal(str);
if(flag)
printf("%s shi",str);
else
printf("%s bu shi",str);
}
free(str);
}
int pal(char *str)
{
char *p,*q;
p=str;
q=str;
while(*q!='\0')
q++;
q--;
while(p<q)
if(*p==*q)
{
p++;
q--;
}
else
break;
return (p>=q)
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询