[求助]巨大的郁闷 大家帮忙看看!!!
#include<stdio.h> #include "math.h" f(int a) {int b[3],i,x=a,y=x,k; printf("%d\n",x); i=sqrt(a); if (i*i==a)for (i=1;a>0;i++){b[i]=a%10;a/=10;} else return 0; for (i=2;i--;) for (k=i;k<=2;k++)if(b[i+1]==b[k+2]){printf("%d\n",x);return 1;} return 0;}
int fact(int a) {int i,k=0; for (i=101;i<=a;i++)k+=f(i); printf("%d",k);}
main () {int n; scanf("%d",&n); fact(n); getch(); }
这是怎么回事? 为什么2次输出X的值不同 第一个printf等于a的初值 第二个printf则不等了 而第二个printf处换成Y就等于最初的a了 明明2次printf之间并没有改变过x的值
[此贴子已经被作者于2005-4-28 20:54:04编辑过]