以下程序中,函数fun的功能是判断一串字符是否为”回文”,若是返回1,否则返回0。所谓”回文”,是指顺读和倒读都一样的字符串。如果”ABCBA”和”xyzzyx”都是”回文”。
需要完善的源程序如下:
#include “stdio.h”
#include “string.h”
int fun(char *s)
{ int i, j, m, t=0;
m=strlen(s);
程序段
return 1;
else return 0;
}
void main()
{ int a; char str[80];
printf(“Enter a string:”);
scanf(“%s”,str);
a=fun(str);
if(a==1) printf(“YES”);
else printf(“NO”);
}
一个实现:
#include "stdio.h"
#include "string.h"
int fun(char *s)
{
int i, j, m, t=0;
m=strlen(s);
for(i=0,j=m-1;i<j;i++,j--){ //让i和j分别指向字符串前后对称位置,然后逐渐靠近,直到比较完所有对称位置
if(s[i]!=s[j]){ //如果字符串前后对称位置的字符不相等则不是回文数
t=1;
}
}
if(t==0)
return 1;
else
return 0;
}
int main()
{
int a; char str[80];
printf("Enter a string:");
scanf("%s",str);
a=fun(str);
if(a==1) printf("YES");
else printf("NO");
}
你好,望采纳!
#include “stdio.h”
#include “string.h”
int fun(char *s)
{ int i, j, m, t=0;
m=strlen(s);
if(m==1)
return 1;
else
return 0;
}
int strlen(char *length)
{
if(length > 0)
{
nums= length / 2;
for( A =0 ;A < nums;A++)
{
if(Str[A] == Str[length-1-A])
{
IsTrue=1;
}else
{
IsTrue=0;
}
}
}
return IsTrue;
}
void main()
{ int a; char str[80];
printf(“Enter a string:”);
scanf(“%s”,str);
a=fun(str);
if(a==1) printf(“YES”);
else printf(“NO”);
}
for (i = 0, j = m - 1; i < j; i++, j--)
if (s[i] != s[j])
break;
if (i >= j)
return 1;
else
return 0;