> 唯美句子 > 用C语言判断一个句子是否回文

用C语言判断一个句子是否回文

voidmain()

{

charstr[100],*q,*h;//两个指针,一个从前往后,一个从后往前

intk=1;

printf("Inputasentence:\n");

gets(str);

q=str;//指向头

h=str;

h=h+strlen(str)-1;//指向屁股

intlength=strlen(str)/2+1;

while(k==1)

{

if(length<0)//用于控制只做一半就退出

{

k=1;

break;

}

if((*q)!=(*h))//在这里出错的

{

k=0;

break;

}

q++;

h--;

length--;

}

if(k==0)

printf("no");

elseif(k==1)

printf("yes");

}

你有N个BUG~ 出错的原因是指针访问的内存为空然后取值。这个是大错特错的

追问

不好意思,刚学指针。

if((*q)!=(*h)) //在这里出错的

{

k=0;

break;

}

当k=0不就停止了吗,为什么要控制只做一半就退出。。

追答

不用一半也可以,while里判断当前char是否是空

if((*q)==NULL)

{

k=1;

break;

}

五言 就句回文《山间》

乱花飞处处,秀竹带清风。

溪浅潺潺水,山青落日红。

用C语言判断一个句子是否回文

绝对行!!!#include#include#includevoid main(){char a[100];int len;int i;printf("请输入一串字符:");scanf("%s",a);len=strlen(a);for(i=0;i&lt;=len/2;){if(a[i]!=a[len-i-1]){printf("你输入的不是回文!\n");exit(0);}i++;}printf("你输入的是回文!\n");}

C语言判断回文怎么不行帮我看看

#include#includeint main(){char a[50];char b[50];int i,n,j=0;printf("请输入字符串");gets(a);n=strlen(a);for(i=n-1;i&gt;=0;i--){b[j]=a[i];j++;}b[j]='\0';if(strcmp(a,b)==0){printf("是回文\n");}else{printf("不是回文\n");}return 0;}我在for下面加了一句b[j]='\0'。

C语言怎么判断一个一个数是否为回文

#include int func(unsigned long);int main(void){unsigned long n;scanf("%lu",&amp;n);printf("%d\n",func(n));return 0;}int func(unsigned long n){unsigned long t,m;for(m=0,t=n;t;t/=10){m=m*10+t%10;}return m==n;}

求C语言判断一个正整数是否是回文输入任意正整数判断是否回文,要...

展开全部 #include "stdio.h"int main(int argv,char *argc[]){ char s[100],i,k; printf("Input string, Ctrl+Z end...\n"); while(gets(s)){ for(k=0;s[k];k++); for(k--,i=0;i=k) printf("\n'%s' is a palindrome string\n\n",s); else printf("\n'%s' is not a palindrome string\n\n",s); } return 0; }运行样例: ...

C语言判断是不是回文数?C语言中,给一个5位数,判断它是不是回文...

程序源代码: main( ) { long ge,shi,qian,wan,x; scanf("%ld",&x); wan=x/10000; qian=x%10000/1000; shi=x%100/10; ge=x%10; if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf("this number is a huiwen\n"); else printf("this number is not a huiwen\n"); } 我的代码: main() { int a,b,c,d; long int n; scanf("%ld",&n); a=n/10000; b=(n%10000)/1000; c=(n%100)/10; d=n%10; if(a==d&&b==c) printf("this %ld is a hui wen\n",n); else printf("this %ld is not a hui wen\n",n); }

C语言编写一个程序,判断输入的一个字符串是否是回文。

不用那么麻烦,看看这种思路一个字符串如果是回文,就是两端相对于中心位置对称如123321123-对称点-3211232112---3(对称点)--21只需要拿左边这半边的字符,与右边的比较,如果一样,就是回文#include #include "string.h"void main(){int x,i;char st1[100]={0};gets(st1);x=strlen(st1);for(i = 0; i {if(st1[i] != st1[x-i-1])///这就是比较两端的字符{break;//不是回文}}if(i>x/2)///没执行break,就是回文printf("YES");elseprintf("NO"); }

C语言怎么用 if 判断某一个五位数的回文

展开全部 #include #include int Check(const char* str){ int i = 0, j = strlen(str)-1; while( i < j ) { if( str[i] != str[j] ) return 0; ++i, --j; } return 1; } int main(){ char str[32]; while( scanf("%s",str) != EOF ) { printf(str); if( Check(str) ){ puts("是回文数\n"); }else{ puts("不是回文数\n"); } } return 0;}

用C语言判断一个句子是否回文:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!