c语言编写程序:输入一个字符,如果该字符为回文输出“回文”,若该

2024-05-03 22:42

1. c语言编写程序:输入一个字符,如果该字符为回文输出“回文”,若该

首先,输入一个字符肯定不够,一个字符串才行。
我们先用一个数组储存字符串,之后分别比较第i位与倒数第i位的值就可以知道是不是回文了。
代码如下:
#include#include#define size 1000int main(){	char m[size];	int i,l;	gets(m);	l = strlen(m);//计算长度 		printf("原字符串");	for(i = 0; i <= l/2;i++){		if(m[i] != m[-i]){			printf("不");//判断 			break;		}	}	printf("是回文。");		return 0;}

c语言编写程序:输入一个字符,如果该字符为回文输出“回文”,若该

2. 即求cc语言!!程序设计:输入一个字符串,判断是否是回文串,如aba是回文串,而abab不是回文串

#include
#include

int main()
{
	char s[100];
	int i,len;
	printf("请输入一个字符串:");
	scanf("%s",s);
	len=strlen(s);
	for(i=0;i<len/2;i++)
		if(s[i]!=s[len-i-1])
			break;

	if(i==(len)/2)
		printf("该字符串是回文字符串!\n");
	else
		printf("该字符串不是回文字符串!\n");

	return 0;
}

3. 判断输入的一个字符串是否为回文串,若是输出“Yes”,否则输出“No”。

错误原因:
1)C语言中变量的定义属于声明,需要写在一个函数的开始部分。
2)把一个字符串中的字符逆序取出赋值给另一个字符数组时,记得末尾加上空字符。
参考代码如下,希望能帮到您!
#include 
#include 
int main(void)
{
    char str[100];
	int length;
	char str1[100];
	int a=0;
	int i;
    gets(str);
    //int length;
    length=strlen(str);
    //char str1[100];
    //int a;
   // for(int i=0; i<length; ++i)
	/*
	for(i=0; i<length; ++i) 
	{
        for (a=length-2; a>=0; --a)
		{
            str1[i]=str[a];
        }
    }*/
	for(i=length-1; i>=0; --i) 
	{
		str1[a]=str[i];
		a++;
    }
	str1[a]=0;
    if(strcmp(str,str1)==0) 
	{
        printf("Yes\n");
    }
    else 
		printf("No\n");
    return 0;
}


判断输入的一个字符串是否为回文串,若是输出“Yes”,否则输出“No”。

4. 输入任意一个字符串,找出所有的回文,并按长度排序输出

没人写还是给你写一个吧,算法一般般的。、
#include

void exchange(int *a,int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
}

bool ishuiwen(char c[],int start,int end)
{
int i;
for(i=0;i<=(end-start)/2;i++)
if(c[start+i]!=c[end-i])
return 0;
return 1;

}

void main()
{
char c[100];
int i,j;
int start[100],end[100],len[100];
int e=0;
gets(c);
for(i=0;i<strlen(c)-1;i++)
for(j=strlen(c)-1;j>i;j--)
{
if(ishuiwen(c,i,j))
{start[e++]=i,end[e]=j,len[e]=j-i+1;}
}
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(len[j]>len[j+1])
{
exchange(&start[j],&start[j+1]);
exchange(&end[j],&end[j+1]);
exchange(&end[j],&end[j+1]);
}
for(i=0;len[i]!=0;i++)
{
for(j=start[i];j<=end[j];j++)
putchar(c[j]);
printf("\n");
}
}
算法感觉不是太好,将就一下

5. C语言:判断能否通过去掉0个或1个字符,使得字符串成为回文串,如果可以输出Y,否则输出N。

程序如下,如有新要求,追问吧!
#include
int main(void)
{
 char str[255];
    unsigned int i,len;
    printf("请输入一个字符串...\n");
    gets(str);
    len=strlen(str);
    for(i=0;i<len/2;i++){
     if(str[i]!=str[len-1-i]){
      if(i+1>=(len/2)) putchar('Y');
      else putchar('N');
      return 0;
     }
    }
}

C语言:判断能否通过去掉0个或1个字符,使得字符串成为回文串,如果可以输出Y,否则输出N。

6. C语言判断回文字符串

//你的错误在于递归调用的时候,i每次都是0,所以要用static int i = 0
#include 
#include 
#include 
int hui(char a[10000])
{
int n;
static int	i=0;  //这里改为static int i = 0就对了,因为你递归调用i的时候每次都把i置为0了,那肯定不行的,因为你的i是在变得,所以用static
n=strlen(a);

if(i>=n-i-1)
return 1;
else
{
if (a[i]==a[n-i-1])
{
i++;
    	hui(a);
}
else
        return 0;
   }     		   
}
int main(int argc, char *argv[]) 
{
char a[10000];
gets(a);
if (strlen(a)==0) {printf("No\n");}
else
{
if(hui(a))
  printf("Yes\n");
  else
  printf("No\n");
}
return 0;
}

7. c语言 输入一行字符串,判断是否是回文?(回文?内容和颠倒后相同,例如输入aba,就是回文

..获取一个字符串,得到长度 length,然后 :
char str[100];int flag = 0;scanf("%s",str);flag = 0;for(i=0;i<length/2;i++){   if(str[i] != str[length - 1 - i])//不匹配   {      flag = 1;      break;   }}if(flag == 0)   printf("是回文");else   printf("不是回文");

c语言 输入一行字符串,判断是否是回文?(回文?内容和颠倒后相同,例如输入aba,就是回文

8. c语言编程:判定一个字符是否是回文串(回文串是指从开头读和从末尾读均为相同字符的字符串,例如:abcba

1、首先,在C语言软件中,定义多个整型变量,保存程序中所需操作的数值。

2、定义两个数组,保存输入的字符串和最长回文。

3、输入字符串,保存在变量a中。计算字符串的长度,设置变量k和max的初值。

4、接着,用循环语句实现查找回文,以及最长回文的判断。

5、用if语句判断回文是否偶数,如果条件成立执行以下语句。

6、最后运行程序,输入任一连续字符串,电脑就会判断其中的最长回文,并输出。