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;}
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;
}
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;
}
}
}
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("不是回文");
8. c语言编程:判定一个字符是否是回文串(回文串是指从开头读和从末尾读均为相同字符的字符串,例如:abcba
1、首先,在C语言软件中,定义多个整型变量,保存程序中所需操作的数值。
2、定义两个数组,保存输入的字符串和最长回文。
3、输入字符串,保存在变量a中。计算字符串的长度,设置变量k和max的初值。
4、接着,用循环语句实现查找回文,以及最长回文的判断。
5、用if语句判断回文是否偶数,如果条件成立执行以下语句。
6、最后运行程序,输入任一连续字符串,电脑就会判断其中的最长回文,并输出。