程序出了点问题,无论输入什么值,运行之后都不输出任何值。
回文数(10分)题目内容:
输出所有不超过n(取n<256)的、其平方具有对称性质的正整数(也称为回文数)。
如: 1*1=1; 2*2=4;3*3=9;11*11=121;1,2,3,11是回文数。
输入格式:
输入n(n<256)
输出格式:
输出所有不超过n的回文数
输入样例:
3
输出样例:
1[回车]
2[回车]
程序代码:
#include<stdio.h> #include<string.h> #include <stdlib.h> int main() { int n,i,s,j,l,a,b,c,d; int w[30]; char st[30]; scanf("%d",&n); for(i=1;i<=n;i++) { s=i*i;//i为要判断的数。 sprintf(st,"%d",s); for(d=0;st[d]!=0;d++) w[d]=st[d]-'0';//将S的每一位依次赋值给w[0],w[1],w[2]…… l=sizeof(w);//计算数组的长度 a=0;b=l-1;c=1; while(a<=b) { if(w[a]!=w[b])//将数组对称位置数进行比较。 c=c-1;//出现不相等,便减1 a++;b--; } if(c>0)//如果比较之后发现对称对称位置的数值都相等,上面的c便不会减1。 printf("%d\n",i);//是不是这里的问题? } return 0; }
为什么无论输入什么数C的值都是-59
[此贴子已经被作者于2016-11-10 10:56编辑过]