Re: [問題] 二進位轉十進位 加入一個判斷式

看板C_and_CPP作者 (Sedra smith)時間14年前 (2010/06/13 01:24), 編輯推噓2(2010)
留言12則, 2人參與, 最新討論串2/3 (看更多)
: 使用c++設計一個二進位轉成十進位的程式如下: : #include <iostream> : #include <string> : using namespace std; : int main(){ : string bin_n; : int dec_n = 0; : int i; : cout << "請輸入二進位數字:"; : cin >> bin_n; : for(i = 0; i < bin_n.length(); i++) : dec_n = dec_n * 2 + (bin_n[i] - '0'); : cout << "轉成十進位後是:" << dec_n << endl; : return 0; : } : 但是若輸入"非"二進位的數字 : Ex:2001 : 會得到結果為17 : 若是要再其中加入一個判斷式 : 使得輸入"非"二進位的數字時 會進到else裡面 : 要怎麼設計這個程式呢 : 一個小小的問題麻煩版上的高手們解答 謝謝 主要是想要形成 可以將二進位轉換成十進位數字 並且 若輸入的值不是二進位數,則顯示“error”。 這樣的一個程式 想知道 照我這樣寫的話 要怎麼增加才能形成我要的形式 有嘗試要在cin >> bin_n的下面加入if指令 但是會跑出奇怪的結果 抱歉 自學c語言產生很多問題 麻煩各位高手解答 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.166.202

06/13 01:29, , 1F
把你加指令後的code貼上來, 還有奇怪的結果也貼看看....
06/13 01:29, 1F

06/13 01:38, , 2F

06/13 01:39, , 3F
奇怪的結果是指 沒辦法compile 訊息為
06/13 01:39, 3F

06/13 01:39, , 4F
17 expected primary-expression before "else"
06/13 01:39, 4F

06/13 01:40, , 5F
17 expected';'before "else"
06/13 01:40, 5F

06/13 12:16, , 6F
if()的敘述如果超過一條指令, 就要用{}括起來, 事實上養
06/13 12:16, 6F

06/13 12:16, , 7F
成總是把if/else/for等後面的statement用{}括起來也不是
06/13 12:16, 7F

06/13 12:16, , 8F
什麼壞事就是了....
06/13 12:16, 8F

06/13 12:17, , 9F
bin_n[]裡放的是文字, 所以你判段>=與<=應該用'0'與'1'
06/13 12:17, 9F

06/13 12:18, , 10F
要搞清楚什麼時候用'0','1', 什麼時候用0,1, 或者說搞清
06/13 12:18, 10F

06/13 12:18, , 11F
處這兩者有何不同....
06/13 12:18, 11F

06/13 12:20, , 12F
最後, 你else的cout<<"error"<<後面沒有少東西嗎?_?
06/13 12:20, 12F
文章代碼(AID): #1C4yBHx8 (C_and_CPP)
文章代碼(AID): #1C4yBHx8 (C_and_CPP)