用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<=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>=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",&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语言判断一个句子是否回文:等您坐沙发呢!