Re: [問題] 新手的疑問

看板C_and_CPP (C/C++)作者 (晃阿晃阿)時間16年前 (2009/09/21 10:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《asazen (存在感不足)》之銘言: : 請教各位大大,我現在要做一個程式驗證一種特殊數字(ex.1233=12平方+33平方) : 以下是小弟寫的程式碼 : 但是不知道哪裡有問題,建置成功,但是每次開始跑程式的時候,只要輸入偶數位數字, : 就會一直跳出錯誤訊息,好像是"c"的錯誤,但是我已經有宣告c了,怎麼會這樣呢? : 對不起,我是以前沒學過c++的新手,如果問題很笨請見諒Q口Q 老實說你這個code根本不可能建置完成 : #include<iostream> : using namespace std; : int main() : { : cout<<"請輸入數字"<<endl; : int a; : cin>>a; : int b; : for(b=0;a>0;b++) //計算幾位數 : {a=a/10} 這邊最後沒有加分號 所以一定有一個error : if(b%2==0) //看是不是可以開的偶數位數字 : { : int x; : int c; : int d; : for(x=b/2;x=0;x--) ^^^ 通常這裡會寫 x==0 而不是 x=0 而且你本身的演算法應該是用不到for迴圈 看你註解的意思 應該只要 x=b/2就夠了 : {c=a/(10^x)} //將數除以10的x次方,商數(前半份)當作c 這裡出很大的問題 你前面的a 早就被你除了好幾次10 跟一開始輸入的a早就不一樣了 這裡的a 已經不能用了 這裡也是沒加分號..然後 10的x次方應該是 pow(10,x) 一開始要include<math.h> : for(x=b/2;x=0;x--) ^^^^^^^^^^^^^^^^^這裡也是 : {d=a%(10^x)} //將數除以10的x次方,餘數(後半份)當作d 這裡同上 : if(c*c+d*d==a) //將前半平方加上後半平方以驗證 跟一開始輸入的a早就不一樣了 所以怎麼驗證應該都不會對 : {cout<<"賓果!\n";} c++的話最好就cout<<"賓果!"<<endl; 不過是沒差啦XD : else : cout<<"這不是特殊數字\n"; : } : else : cout<<"要偶數位數字喔!\n"; //要求輸入可以拆開的數字 : return 0; : } : 如同上面的程式碼,輸入奇數位數沒問題,但是偶數就會錯誤,建置找不到錯誤 : 小弟只是自己看書試打的,請問大大們是哪裡出錯了嗎@@? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.216.142 ※ 編輯: fabdawn 來自: 140.113.216.142 (09/21 10:50)
文章代碼(AID): #1AjkbXKg (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
3
11
完整討論串 (本文為第 2 之 2 篇):
3
11
文章代碼(AID): #1AjkbXKg (C_and_CPP)