各位有知道以下答案的朋友帮我解决一下,急用,小弟我先谢啦!
判断一个数是否为回文数(回文数就是像12321,正着读和倒着读都一样)要求:(1)定义一个函数separate(int*data,intn),该函数将n的各个位上的数分离...
判断一个数是否为回文数(回文数就是像12321,正着读和倒着读都一样)
要求:(1)定义一个函数separate(int * data,int n),该函数将n的各个位上的数分离保存在data所指向的数组中。
(2)定义一个函数judge(int * data,int len),判断data所指向的数组是否为回文。
(3)main函数中调用上述的函数,完成程序的功能。 展开
要求:(1)定义一个函数separate(int * data,int n),该函数将n的各个位上的数分离保存在data所指向的数组中。
(2)定义一个函数judge(int * data,int len),判断data所指向的数组是否为回文。
(3)main函数中调用上述的函数,完成程序的功能。 展开
展开全部
这个是你要的程序,我在vc6通过调试运行了
#include<stdio.h>
void main()
{
void separate(int *data,int n);
int judge(int *data,int len);
int len,*data,n,i;
printf("输入一个n:");
scanf("%d",&n);
for(i=n,len=0;i!=0;i/=10,len++);
data=(int*)malloc(sizeof(int)*len);
separate(data,n);
if(judge(data,len))
printf("是回文数\n");
else
printf("不是回文数\n");
}
void separate(int *data,int n)
{
int i,j,x;
for(i=0;n!=0;i++)
{
*(data+i)=n%10;
n/=10;
}
for(j=0,i--;i>=0;j++,i--)
{
x=*(data+j);
*(data+j)=*(data+i);
*(data+i)=x;
}
}
int judge(int *data,int len)
{
int i;
for(i=0,len--;i<=len;i++,len--)
if(*(data+i)!=*(data+len))
return 0;
return 1;
}
#include<stdio.h>
void main()
{
void separate(int *data,int n);
int judge(int *data,int len);
int len,*data,n,i;
printf("输入一个n:");
scanf("%d",&n);
for(i=n,len=0;i!=0;i/=10,len++);
data=(int*)malloc(sizeof(int)*len);
separate(data,n);
if(judge(data,len))
printf("是回文数\n");
else
printf("不是回文数\n");
}
void separate(int *data,int n)
{
int i,j,x;
for(i=0;n!=0;i++)
{
*(data+i)=n%10;
n/=10;
}
for(j=0,i--;i>=0;j++,i--)
{
x=*(data+j);
*(data+j)=*(data+i);
*(data+i)=x;
}
}
int judge(int *data,int len)
{
int i;
for(i=0,len--;i<=len;i++,len--)
if(*(data+i)!=*(data+len))
return 0;
return 1;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询