C语言 判断回文数的

#include<stdio.h>main(){chara[50];int*m,i,j;gets(a);m=a;for(i=0,j=strlen(a)-1;i<j;i++... #include<stdio.h>
main()
{
char a[50];
int *m,i,j;
gets(a);
m=a;
for(i=0,j=strlen(a)-1;i<j;i++,j--)
{
if(*(m+i)!=*(m+j))
{
printf("No");
break;
}
printf("Yes");
}
}
刚学C语言,这里用了指针,运行时无论输什么都打出“No”,我输入“12321”那么长度不就是五位么?减去1,*(m+4)不就是a[50]字符串的最后一位么?哪错了?
另外,书本要我用函数编,“数组名为实参,指针为形参”,这个又怎么编?各位大虾帮帮忙写一下。
展开
 我来答
随便_看下
推荐于2016-06-19 · TA获得超过3763个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:651万
展开全部
#include<stdio.h>
#include <string.h>
#include<iostream.h>
void main()
{
char a[50];
int i,j;
char *m;
gets(a);
m=a;
for(i=0,j=strlen(a)-1;i<j;i++,j--)
{
if(*(m+i)!=*(m+j))
{
printf("No");
break;
}
else if(j-i==1||j-i==2)
printf("Yes");
}
cout<<endl;
}
给你改了下,基本符合要求了。
主要是strlen的头函数, int *m定义错误, printf("Yes")只要输出一次等
算法是没问题的

用函数编的
#include<stdio.h>
#include <string.h>
#include<iostream.h>
void fun(char *m)
{ int i,j;
for(i=0,j=strlen(m)-1;i<j;i++,j--)
{
if(*(m+i)!=*(m+j))
{
printf("No");
break;
}
else if(j-i==1||j-i==2)
printf("Yes");
}
}
void main()
{
char a[50];
char *p;
gets(a);
p=a;
fun(p);
cout<<endl;
}
qqjwr
推荐于2016-07-31 · TA获得超过1015个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:121万
展开全部
判断是否回文
# include <stdio.h>
int hw(char *p)
{ char *q;int n;
n=strlen(p);
q=p+n;q--;
while(p<q)
if(*p==*q) {p++;q--;}
else return 0;
return 1;
}
void main()
{ char *p="heeh";
int c;c=hw(p);
printf("%d",c);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1ed0419
2010-12-02 · TA获得超过169个赞
知道小有建树答主
回答量:139
采纳率:100%
帮助的人:91.3万
展开全部
你定义的指针是指向一个字符数组的,不能用int类型的指针,建议把指针改为char型的,char* m试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落日寒霞
2012-04-18
知道答主
回答量:37
采纳率:0%
帮助的人:8万
展开全部
#include<stdio.h>
void main()
{
int a,b,i=0;
scanf("%d",&a);
b=a;
while (b>0)
{
i=i*10+b%10;
b=b/10;
}
if (i==a)printf("Yes\n");
else printf("No\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
carver_hope
2010-12-02
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
注意数据类型.
把int *m改成char *m;
你可以把具体的值打印出来,这也是常见的调试方法,同时也可以看出数据在内存中的排列.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式