程序出了点问题,无论输入什么值,运行之后都不输出任何值。
回文数(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编辑过]









