请看看我这个c程序对不对

来源:百度知道 编辑:UC知道 时间:2024/05/24 04:58:06
我马上要考2级,做题练的。要求输入如果是回文数,就是数字对称的比如121,64546,16561等等,是的话返回1,不是返回0,编个fun函数
#include <stdio.h>
int fun(long n)
{int a[],k=0,p=o,*s;
a[]=0;s=a;
while(s[k++]!='\0');
for(p=0;p!='\0';p++)
if(a[p]==*s[k])
{continue;k--;}
else return(0);
return(1);
}
void main()
{long n;
printf("please input ");
scanf("%ld",&n);
if(fun(n))printf("yes");
else printf("no");
}
我用tc运行时提示我有一个错误,上面写着开始编译文件: E:\桌面\最新桌面\Win-TC\projects\noname.c
我不知道这个是什么意思,我编的有错误么,请大家指点,谢谢
上面的有点问题我修改如下
#include <stdio.h>
int fun(long n)
{int a[100],k=0,p=0,*s;
a[0]=n;s=a;
while(s[k]!='\0')
k++;
for(p=0;p!='\0';p++)
if(a[p]==s[k])
{k--;continue;}
else return(0);
return(1);
}
void main()

你的数组a[]没有指定长度啊(可以用动态分配),数组赋值也不能这样赋(a[]=0),还有p=o(字母)还是p=0(数字)啊
a[p]==*s[k],这里也有错误啊,两边类型不匹配啊,去掉*
p!='\0'没看懂,p是下标,'\0'是数组结尾

a[0]=n;这样赋值的话,第一位就是n啦,数组就是{n,0,0,0,0..},你要改一下你的输入,把数输进去,可以用getc,把数当成字符,一个一个输进去