看板 C_and_CPP 關於我們 聯絡資訊
: 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