Re: [問題] 新手的疑問
※ 引述《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)
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章