您尚未
登入
註冊
忘記密碼
搜尋
贊助
贊助本站
數位公仔
紀念T恤
紀念馬克杯
廣告
刊登廣告
廣告價格
線上申請刊登
用雅幣刊登
免費刊登
目前客戶
簡訊
簡訊說明
購買金幣
發送簡訊
預約簡訊
發送記錄
好友通訊
罐頭簡訊
論命
數位論命舘
免費排盤工具
葫蘆墩 優生造命
葫蘆墩 八字命書
影音論命(葫蘆墩)
影音占卜(葫蘆墩)
購買金幣
星座分析
孔明神數
周公解夢
星僑線上論命
娛樂
影 像 行 腳
數 位 造 型
數 位 畫 廊
心 情 日 記
公 益 彩 券
送生日蛋糕
俄羅斯方塊
四 川 省
猜 數 字
比 大 小
泡 泡 龍
許 願 池
萬 年 曆
經 期 計 算
體 重 測 量
音 樂 點 播
衛 星 地 圖
時間戳字幕
男女聊天室
求助
論壇守則
會員等級
會員權限
語法教學
常見問題
最新活動
打工賺雅幣
首頁
新版首頁(全頁)
傳統首頁(全頁)
新版首頁(選單)
傳統首頁(選單)
MyChat 數位男女
命理風水
15
星僑五術軟體
4
葫蘆墩命理網
5
命理問答
9
四柱八字
1
紫微斗數
1
姓名學
手面相
易經占卜
1
風水研討
1
擇日&三式
1
西洋占星
無視論塔羅牌
10
修行&武術
1
中醫研討
五術哈啦
1
電腦資訊
13
硬體討論
5
超頻 & 開箱
3
數位生活
2
PDA 討論
手機討論區
軟體推薦
2
軟體討論
6
Apple 討論
1
Unix-like
網路&防毒
2
程式設計
網站架設
4
電腦教學資源
生活休閒
14
休閒哈啦
7
感情世界
2
上班一族
5
國考&法律
7
生活醫學
4
運動體育
1
單車討論
1
釣魚討論
6
旅遊討論
4
天文觀星
3
攝影分享
8
圖片分享
4
數位影視
2
笑話集錦
3
興趣嗜好
13
文學散文
7
繪圖藝術
1
布袋戲
3
動漫畫討論
3
美食天地
6
理財專區
心理測驗
1
汽、機車
3
寵物園地
模型&手工藝
4
花卉園藝
魔術方塊
獨輪車專區
電玩遊戲
13
遊戲歡樂包
4
CS討論
8
Steam
3
MineCraft
2
東方Project
英雄聯盟LOL
1
單機遊戲
2
WebGame
3
線上遊戲1
6
線上遊戲2
5
電視遊樂器
1
掌上型遊戲
2
模擬器遊戲
1
工商服務
6
虛擬城市
7
好康分享
新品販售
二手拍賣
1
租屋&找屋
工商建議區
1
站務專區
10
最新活動
活動成果
數位造型
心情日記
個人圖庫
新人報到練習
論壇問題建議
1
榮會及電子報討論
-最近版區-
-最近瀏覽-
»
程式設計
»
麻煩幫我解釋這支程式
手機版
訂閱
地圖
簡體
您是第
4410
個閱讀者
可列印版
加為IE收藏
收藏主題
上一主題
|
下一主題
ericfan007
級別:
小人物
x5
x24
分享:
▼
x
0
[C/C++][求助] 麻煩幫我解釋這支程式
我剛開始學C++不久,還不太了解,敬請見諒喔
這程式是要輸出2進位的ASCII碼
助教上課講的非常快,邊講邊寫
我趕著抄所以沒去注意聽講
可以麻煩幫我講解一下嗎,謝謝
#include<iostream>
using std: ..
訪客只能看到部份內容,免費
加入會員
或由臉書
Google
可以看到全部內容
[ 此文章被ericfan007在2006-12-09 18:05重新編輯 ]
x
0
[樓 主]
From:臺灣 |
Posted:
2006-12-06 20:06 |
ericfan007
級別:
小人物
x5
x24
分享:
▲
▼
請問可以幫忙解答嗎
萬分感謝
x
0
[1 樓]
From:臺灣中華HiNet |
Posted:
2006-12-08 17:25 |
HadesDer
級別:
小人物
x0
x4
分享:
▲
int main()
{
char words[10];
cout<<"Please input the strings:";
cin>>words; //輸入一串字串
for(int i=0;i<strlen(words);i++)
{a(words[ i ]); //按照順序把字串中的每一個字丟進 a 這個函式裡
cout<<" ";
}
system("pause");
return 0;
}
主程式其實不困難..大概就這樣..
接下來看 a 這個函式..
int a(char c)
{
int i=0;
i=c; //把丟進來的字元轉換成數字..如字元 A 就等於 65..這個查 ASCII 碼表就有了..
fib(i); //再把轉換後的數字丟到 fib 函式中..
}
這個 fib 函式才是這支程式主要的核心..
也就是要怎麼把數字變成二進位..
這裡用到遞迴的寫法..建議你可以先看一下書中遞迴的說明..
int fib(int i)
{
int k;
if(!i)return 0; //如果傳進來的 i 值是 0 的話..就結束..這個寫法的說明請見底下註解一
k=i%2; //k 的值是 i 除 2 取餘數..所以如果 i = 2..那 k = 0
fib(i/2); //再把 i/2 的值丟到 fib 函式中運算..自己呼叫自己..這就是遞迴..
cout<<k; //把剛剛 k 的值印出來..
}
假設 i 的值是 3..那整個 fib 的執行過程如下:
fib(3):
因為 i = 3..不等於 0 所以繼續往下執行..
k = 3 % 2 = 1
fib(3/2)..無條件捨去..
所以是 fib(1)
因為 i = 1不等於 0 所以繼續往下執行..
k = 1 % 2 = 1
fib(1/2)..無條件捨去..
所以是 fib(0)
因為 i = 0 所以就結束了..又因為是遞迴..所以會往回繼續執行..
回到 fib(1)..印出 k 的值 = 1
底下沒有程式碼了..結束..
回到 fib(3)..印出 k 的值 = 1
所以整個印出的順序是 11
也就是 3 的二進位碼..
希望這段回文對你有幫助..
註解一:
if (!i)
我們知道 if () 括號裡如果為 True..就會執行xx動作..
那我們來看看這段程式碼..if(!i)return 0;
如果 i = 0 的話..會發生什麼狀況..
if (!0) ..0 是 False ..所以加上個 ! 運算子..就反過來..變成 True 了..
也就是說.. if(!i)return 0;
如果當 i = 0 也就是 False 的時候..就 return 0..
x
0
[2 樓]
From:台灣台灣索尼 |
Posted:
2006-12-15 01:19 |
MyChat 數位男女
»
程式設計
Powered by
PHPWind
v1.3.6
Copyright © 2003-04
PHPWind
Processed in 0.056860 second(s),query:16 Gzip disabled
本站由
瀛睿律師事務所
擔任常年法律顧問 |
免責聲明
|
本網站已依台灣網站內容分級規定處理
|
連絡我們
|
訪客留言