c语言的程序题

来源:百度知道 编辑:UC知道 时间:2024/07/07 11:01:25
下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int jsValue(long n)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out.dat中。
注意:部分源程序已给出。请勿改动主函数main()。
【试题程序】
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int jsValue(long n)
{

}

void main()
{
long m;
FILE *out;
out=fopen("out.dat","w");
for(m=11;m<1000;m++)
{
if(jsValue(m) && jsValue(m*m) && jsValue(m*m*m))
{
printf("m=%4ld,m*m=%6ld,m*m*m=%8ld\n",m,m*m,m*m*m);
fprintf(out, "m=%4ld,m*m=%6ld,m*m*m=%8ld\n",m,m*m,m*m*m);
}
}
fclose(out);
}
请问子函数int jsValue(long n)应该这么写

int jsValue(long n)
{
int m=0,v=n;
while(v>0)
{
m=m*10+v%10;
v/=10;
}
return (m==n);
}

int 说明返回值的类型为int,long说明的是作为借口的类型为长整形,这个不是必须的,也不是一定的,要看你具体的应用;如果你传入的值是什么类型,就写什么类型,