: char s_temp[100];
: int power,p,sum,sum_forever,temp,L;
全域變數用很大喔 大哥...這樣程式很難讀
: int calculate(char* s,int L);
: int main()
: {
...中略
: }
: int calculate(char* s,int L)
: {
: int a;
: for(a=0;s[a]!='\0';a++)
: sum=s[a]*s[a];
這裡忘了減'0',直接把ascii code拿來乘了
: temp=sum;
: if(L==0)
: sum_forever=sum;
: power=0;
: for(a=0;temp>=1;a++)
: {
: power++;
: temp/=10;
: }
: for(a=0;power>=0;a++)
: {
: p=pow(10,power);
: s_temp[a]=(sum/p)%10;
這裡要存回成字串也一樣 '0'記得加回去
: power--;
: }
: if(sum==1&&L==1) return 1; //這裡return 1
: else if(sum==sum_forever&&L==1) return -1; //這裡return -1
: //但卻return 199XX...
: L=1;
: calculate(s_temp,L);
我猜你應該想寫 return calculate(s_temp, L); 吧
不然結果怎麼層層傳遞回去呢?
: }
--
---- chchwy <批兔個人版> ptt2.cc
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.169.157