﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-外包工-随笔分类-C语言程式设计</title><link>http://www.blogjava.net/temptation/category/46717.html</link><description>学 JAVA 
学 OO</description><language>zh-cn</language><lastBuildDate>Sat, 23 Oct 2010 13:30:51 GMT</lastBuildDate><pubDate>Sat, 23 Oct 2010 13:30:51 GMT</pubDate><ttl>60</ttl><item><title>程式設計(19)--作业6：堆疊操作模擬程式</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335956.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335956.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335956.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335956.html</trackback:ping><description><![CDATA[問題敘述 <br />
&nbsp;&nbsp;&nbsp; <br />
請你設計一個堆疊操作模擬程式，可提供插入(push)、取出(pop)、查詢(retrieve)、<br />
<br />
檢查堆疊是否為滿(isfull)、檢查堆疊是否為空(isempty)等操作。<br />
<br />
你的程式應該利用陣列來實作堆疊，並將各項功能寫成函數。<br />
<br />
--------<br />
條件限制<br />
<br />
1.堆疊最多能儲存10筆資料。<br />
2.當堆疊的內容改變時，請將堆疊的內容顯示出來。<br />
3.當插入或取出、查詢資料時，須考慮堆疊為滿(isfull)或空(isempty)的情形。<br />
4.請提供選單說明供使用者操作<br />
eg.<br />
&nbsp; ****** 選單 ********<br />
&nbsp; 1. 插入資料<br />
&nbsp; 2. 取出資料<br />
&nbsp; 3. 查詢資料<br />
&nbsp; 4. 顯示堆疊內所有資料<br />
&nbsp; 5. 檢查堆疊是否為滿<br />
&nbsp; 6. 檢查堆疊是否為空<br />
&nbsp; 7. 離開<br />
&nbsp; ********************<br />
&nbsp; 輸入選項=&gt;<br />
<br />
--------------<br />
輸入格式<br />
<br />
無檔案輸入,由鍵盤輸入資料。<br />
<br />
--------------<br />
輸出格式<br />
<br />
無檔案輸出,由營幕輸出資料。<br />
<br />
---------------<br />
輸入範例<br />
<br />
略<br />
----------<br />
輸出範例<br />
<br />
略<br />
<br />
<br />
void push(int stack [],int &amp;top,int value){<br />
&nbsp;&nbsp;&nbsp; stack[top]=value;<br />
&nbsp;&nbsp;&nbsp; top++;<br />
}<br />
<br />
int pop(int stack[],int &amp;top){<br />
//put your code here...<br />
}<br />
<br />
int retrieve(int stack[],int top){<br />
&nbsp;&nbsp;&nbsp; return stack[top-1];<br />
}<br />
<br />
int isfull(int stack[],int size,int top){<br />
//put your code here....<br />
} <br />
<br />
int isempty(int stack[],int top){<br />
&nbsp;&nbsp;&nbsp; if(top==0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br />
} <br />
<br />
<br />
int main(){<br />
const int SIZE 10;<br />
int stack[SIZE],top=0;<br />
/*<br />
<br />
put your code here....<br />
<br />
*/<br />
}<br />
<img src ="http://www.blogjava.net/temptation/aggbug/335956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:53 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(18)--作业5：通訊錄 </title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335955.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:52:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335955.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335955.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335955.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335955.html</trackback:ping><description><![CDATA[問題敘述 <br />
&nbsp;&nbsp;&nbsp; <br />
請你設計一個通訊錄軟體，可提供新增、刪除、修改、顯示單筆通訊錄之功能。<br />
通訊錄應包括姓名、性別、年齡、電話、地址、郵遞區號....等資料。<br />
你的程式應利用結構(struct)的方式來實作。<br />
<br />
--------<br />
條件限制<br />
<br />
1.通訊錄最多可儲存20筆資料。<br />
2.請提供選單說明供使用者操作<br />
eg.<br />
&nbsp; ****** 選單 ********<br />
&nbsp; 1. 新增通訊錄<br />
&nbsp; 2. 刪除通訊錄<br />
&nbsp; 3. 修改通訊錄<br />
&nbsp; 4. 顯示通訊錄<br />
&nbsp; 5. 離開<br />
&nbsp; ********************<br />
&nbsp; 輸入選項=&gt;<br />
<br />
--------------<br />
輸入格式<br />
<br />
無檔案輸入,由鍵盤輸入資料。<br />
<br />
--------------<br />
輸出格式<br />
<br />
無檔案輸出,由營幕輸出資料。<br />
<br />
---------------<br />
輸入範例<br />
<br />
略<br />
----------<br />
輸出範例<br />
<br />
略<br />
<img src ="http://www.blogjava.net/temptation/aggbug/335955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:52 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(17)--作业4：成績處理系統</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335954.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335954.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335954.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335954.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335954.html</trackback:ping><description><![CDATA[問題敘述 <br />
&nbsp;&nbsp;&nbsp; <br />
本次段考過後,X老師希望你設計一個程式能幫他統計同學們的成績。<br />
他希望的功能如下:<br />
1.可以輸入全班的N筆學生資料(1&lt;=N&lt;=50),每位學生有三科分數(國、英、數)。<br />
2.可以統計出每位同學的平均成績<br />
3.可以統計出每科成績的全班平均<br />
4.找出每科成績最好的同學<br />
現在請程式功力高強的你幫忙X老師解決他的問題吧!<br />
<br />
--------<br />
條件限制<br />
<br />
1.1&lt;=N&lt;=50<br />
2.請提供選單說明供使用者操作<br />
eg.<br />
&nbsp; ****** Menu ********<br />
&nbsp; 1. Input score.<br />
&nbsp; 2. Print each student's average.<br />
&nbsp; 3. Print the subjects average of the whole class.<br />
&nbsp; 4. Print the Top 1 of each subject.<br />
&nbsp; 5. Exit<br />
&nbsp; ********************<br />
&nbsp; your choice=&gt;<br />
<br />
--------------<br />
輸入格式<br />
<br />
無檔案輸入,由鍵盤輸入資料。<br />
<br />
--------------<br />
輸出格式<br />
<br />
無檔案輸出,由營幕輸出資料。<br />
<br />
---------------<br />
輸入範例<br />
<br />
Please input how many students do you have(1&lt;=N&lt;=50):<br />
3<br />
<br />
Please input the score one by one(Chinese,English,Math):<br />
50 60 40<br />
60 70 80<br />
90 80 70 <br />
<br />
----------<br />
輸出範例<br />
<br />
Print each student's average:<br />
No. Chinese English Math Average<br />
1 50 60 40 50<br />
2 60 70 80 70<br />
3 90 80 70 80<br />
<br />
Print the subjects average of the whole class:<br />
Chinese English Math Average<br />
66.7 70 63.3 66.7<br />
<br />
Print the Top 1 of each subject:<br />
Top 1 of Chinese: No. 3,Score 90<br />
Top 1 of English: No. 3,Score 80<br />
Top 1 of Math: No. 2,Score 80<br />
<br />
<br />
每個人的分數可用二維陣列 int score[50][3] 來儲存<br />
平均成績可儲存在 float avg[50] <br />
科目平均可儲存在 float subject_avg[3] <br />
<br />
例:<br />
//先將所有陣列初始值設為0,否則會有不可預期的後果<br />
for(int i=0;i&lt;50;i++)<br />
&nbsp;&nbsp;&nbsp; for(int j=0;j&lt;3;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; score[i][j]=0;<br />
<br />
for(int k=0;k&lt;50;k++)<br />
&nbsp;&nbsp;&nbsp; avg[k]=0;<br />
<br />
for(int l=0;l&lt;3;l++)<br />
&nbsp;&nbsp; subject_avg[l]=0;<br />
<br />
//讀入n筆學生分數<br />
for(int i=0 ; i &lt; n ; i=i+1 )<br />
scanf("%d%d%d", &amp;score[i][0], &amp;score[i][1], &amp;score[i][2]);<br />
<br />
//計算每個人的平均<br />
for(int i=0 ; i &lt; n ; i++ )<br />
avg[i]=(score[i][0]+score[i][1]+score[i][2])/3;<br />
<br />
//計算科目平均<br />
for(int i=0 ; i &lt; 3 ; i++ ){<br />
&nbsp;&nbsp; for(for int j=0 ; j&lt; n ; j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; subject_avg[i]+=score[i][j];<br />
&nbsp;&nbsp; subject_avg[i]=subject_avg[i]/n;<br />
}<br />
<img src ="http://www.blogjava.net/temptation/aggbug/335954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:50 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(16)--作业3：河內塔(遞迴函數)</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335953.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335953.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335953.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335953.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335953.html</trackback:ping><description><![CDATA[<pre>請你設計一程式﹐利用遞迴函數的技巧﹐計算出般運N個圓環之河內塔所需要的全部移動次數。
--------
條件限制
1.使用者輸入一個正整數N(N&lt;64)
2.輸出移動N個圓環所需要的全部移動次數。
--------
輸入格式
無檔案輸入,由鍵盤輸入資料(正整數N,N&lt;=64)。
--------
輸出格式
無檔案輸出,由營幕輸出資料(移動次數)。
--------
輸入範例
Please input positive integerN(N&lt;=64)
N=3
--------
輸出範例
N=3,Total moves=7
----------
</pre>
<br />
/*<br />
<br />
1.簡單的想法<br />
<br />
將N個環分成上面的[N-1個]及[最下面的環],假設柱子編號為A,B,C<br />
<br />
將所有環由A移到C。<br />
<br />
1.1 先將[N-1個環]由 A 暫移到 B<br />
1.2 再將[最下面的環]由 A 移到 C<br />
1.3 最後再將[N-1個環]由 B 移到 C<br />
<br />
假設移動N個環所需的次數為F(N),則由1.1~1.3可知:<br />
<br />
F(N)=F(N-1)+1+F(N-1)=2*F(N-1)+1<br />
<br />
*/<br />
<br />
int hanoi-total-moves(int n){<br />
if(n==1)<br />
return 1;<br />
else<br />
return 2*hanoi-total-moves(n-1)+1;<br />
}<br />
<br />
/*<br />
<br />
2.進階問題<br />
<br />
如果要把移動的過程順便顯示出來,則需要改寫以上的函數:<br />
<br />
*/<br />
<br />
/* N個環,由 from柱 移到 to柱, 中間透過 tmp柱 */<br />
<br />
void hanoi-moving-steps(int n,char from,char to,char tmp){<br />
// 移動前 N-1 個環,由 from 到 tmp,透過 to<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(n==1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("move ring %d from pillar %c to pillar %c\n",n,from,to);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{<br />
hanoi-moving-steps(n-1,from,tmp,to);<br />
// 移動第 N 個環<br />
printf("move ring %d from pillar %c to pillar %c",n,from,to);<br />
// 移動前 N-1 個環,由 tmp 到 to,透過 from<br />
hanoi-moving-steps(n-1,tmp,to,from);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
<br />
/* 呼叫函數例:&nbsp; 移動三個環,由A柱到C柱,中間透過B柱*/ <br />
<br />
hanoi-moving-steps(3,'A','C','B')<br />
<img src ="http://www.blogjava.net/temptation/aggbug/335953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:49 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(15)--作业2：猜數字(?A?B)</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335952.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335952.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335952.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335952.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335952.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335952.html</trackback:ping><description><![CDATA[問題敘述<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; 猜數字遊戲(?A?B)是一種兩人玩的小游戲,其規則如下所述。<br />
假設兩人玩此遊戲,兩人先各在心中默想一組四位數(數字不重複)<br />
數字,然後兩人互猜對方所想數字,若數字正確且位置正確,則為<br />
1A,若數正確但位置不對,則為1B,被猜的人需將猜的結果告訴<br />
對方,以讓對方修正後再猜。<br />
<br />
例:假設甲乙互猜對方數字,其過程如下:<br />
<br />
甲默想數字為 2345<br />
乙默想數字為 7623<br />
<br />
甲猜:1234<br />
乙答:0A2B<br />
乙猜:6789<br />
甲答:0A0B<br />
甲猜:5678<br />
乙答:1A0B<br />
乙猜:1234<br />
甲答:0A3B<br />
<br />
直到某人猜到對方數字為止<br />
<br />
現在請你設計一個程式,讓它能夠預先默想一組四位數數字,然後<br />
使用者能與其互動來猜電腦所想的數字。電腦必須能夠正確的回<br />
答所猜的結果(以?A?B的格式),直到使用者猜到電腦所想的數字為止。<br />
--------<br />
條件限制<br />
<br />
1.電腦會以亂數產生一組四位數的數字(數字從0~9不重複)<br />
2.使用者需輸入四位數數字來猜<br />
3.電腦需依使用者輸入的輸出回應?A?B<br />
4.答對時顯示訊息,並結束程式。<br />
<br />
--------<br />
輸入格式<br />
<br />
無檔案輸入<br />
--------<br />
輸出格式<br />
<br />
無檔案輸出<br />
--------<br />
輸入範例<br />
<br />
無檔案輸入<br />
--------<br />
輸出範例<br />
<br />
無檔案輸出<br />
----------
<img src ="http://www.blogjava.net/temptation/aggbug/335952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:47 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(14)--作业1：猜數字(二分逼近法)</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335951.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335951.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335951.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335951.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335951.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335951.html</trackback:ping><description><![CDATA[<pre>問題敘述
猜數字遊戲(二分逼近法)是一種兩人玩的小游戲,其規則如下所述。
假設兩人玩此遊戲,兩人先各在心中默想個數字(介於1~100間)
數字,然後兩人互猜對方所想數字,若數字正確則結束遊戲,
若不正確,需告訴對方答案為比較大或較小。然後兩人輪留猜
直到某人猜對為止。
例:使用者默想一數字27
電腦猜:50(答案較大請輸入1,答案較小請輸入2,猜對請輸入3)
使用者回答:2
電腦猜:25(答案較大請輸入1,答案較小請輸入2,猜對請輸入3)
使用者回答:1
電腦猜:37(答案較大請輸入1,答案較小請輸入2,猜對請輸入3)
使用者回答:2
電腦猜:31(答案較大請輸入1,答案較小請輸入2,猜對請輸入3)
使用者回答:2
電腦猜:28(答案較大請輸入1,答案較小請輸入2,猜對請輸入3)
使用者回答:2
電腦猜:26(答案較大請輸入1,答案較小請輸入2,猜對請輸入3)
使用者回答:2
電腦猜:27(答案較大請輸入1,答案較小請輸入2,猜對請輸入3)
使用者回答:3
Bingo!猜對了,共猜了7次.
遊戲結束.
--------
條件限制
1.使用者在心中默想一個數(1~100)
2.電腦以二分逼近的方式來猜使用者所想的數字,
使用者需告訴電腦所猜數字是否正確,若不正確,
需告訴電腦答案為較大或較小(可用1,2,3代碼表示大小或猜對)。
3.猜中後結束程式,並顯示所猜次數.
--------
輸出格式
無檔案輸入
--------
輸出格式
無檔案輸出
--------
輸入範例
無檔案輸入
--------
輸出範例
無檔案輸出
----------
</pre>
<br />
<br />
/*<br />
low:下限<br />
high:上限<br />
guess: 電腦猜的數字<br />
result: 電腦猜的結果(該調大或調小)<br />
可用數字代表:<br />
例: 1=&gt;大,2=&gt;小,3=&gt;猜對<br />
<br />
下列提示之問號請自行將程式碼補上<br />
*/<br />
<br />
int guess,result;<br />
int low=0,high=100;<br />
<br />
//當結果不為猜對時,迴圈重複執行<br />
while(result!=?)<br />
{<br />
//所猜的數字=上限加下限除以2;<br />
guess=(low+high);<br />
//印出所猜的數字<br />
printf("%d",guess);<br />
//讀取結果<br />
scanf("%d",&amp;result);<br />
<br />
//如果要調大<br />
if(result==?)<br />
// 將下限調大<br />
low=?<br />
//如果調小<br />
else if(result==?)<br />
// 將上限調小<br />
high=?<br />
//猜對了<br />
else if(result==)<br />
// 印出猜對訊息<br />
printf?<br />
}<br />
<img src ="http://www.blogjava.net/temptation/aggbug/335951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:46 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(13)--堆疊與佇列 stack&amp;queue II</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335950.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:42:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335950.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335950.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335950.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335950.html</trackback:ping><description><![CDATA[1.堆疊應用:計算後序式(postfix)之四則運算<br />
<br />
&nbsp; 當我們在計算四則運算時,所用的式子稱為中序式(infix)。中序式,是因為運算符號<br />
&nbsp; 被夾在兩個運算數字的中間(如 1+2 或 3*4),但是當多筆數字及運算符號在同一個式<br />
&nbsp; 子時,便會有運算符號優先順序的問題。請看下面兩個算式:<br />
<br />
&nbsp; 1*2+3*4=14,答案是對的(依照先加減後乘除的順序計算)<br />
&nbsp; 1*2+3*4=24,若依照先加減後乘除的順序,則答案是錯的,但反之則是對的。<br />
<br />
&nbsp; 為了避免這種運算符號優先順序不同造成的困擾，當我們在計算時有時會加上括號<br />
&nbsp; 明確的表明運算順序。(例: 1*(2+3)*4 )<br />
<br />
&nbsp; 若利用程?茬B理四則運算的話,中序式雖然容易被人類判讀,但對程?茖市o會造<br />
&nbsp; 成上述的困擾與麻煩,而用後序?茬B理則不必考慮運算符號順序的問題。<br />
<br />
&nbsp; 後序式的規則是將兩運算數字排在前,運算符號排在最後。例:<br />
<br />
&nbsp; 前序式&nbsp; =&gt;&nbsp; 後序式<br />
&nbsp; 1*2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12*<br />
&nbsp; 1*2+3*4&nbsp;&nbsp;&nbsp;&nbsp; 12*34*+<br />
&nbsp; 1*(2+3)*4&nbsp;&nbsp; 123+*4*<br />
&nbsp; 1+2*3+4&nbsp;&nbsp;&nbsp;&nbsp; 123*+4+<br />
<br />
&nbsp; 利用堆疊來計算四則運算:<br />
&nbsp; <br />
&nbsp; (1)先將中序式:a*b+c*d 轉換成 後序式:ab*cd*+ <br />
&nbsp; (2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由左至右掃描整個後序式,若遇到數字則放入堆疊;若遇到運算符號,則從堆疊內取 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 出兩個數字作運算,再將結果放入堆疊。重覆處理到式子結束。<br />
<br />
&nbsp; (3)取出堆疊內的最後筆資料,即為結果。<br />
<br />
&nbsp; 處理流程:<br />
<br />
&nbsp; postfix:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stack:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; op:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comment:&nbsp; <br />
<br />
&nbsp; ab*cd*+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原始算式&nbsp; <br />
&nbsp; b*cd*+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 放入a至堆疊<br />
&nbsp; *cd*+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 放入b<br />
&nbsp; cd*+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (a*b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 運算*,取出b,a 並將(a*b)結果放入堆疊<br />
&nbsp; d*+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (a*b)c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 放入c<br />
&nbsp; *+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (a*b)cd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 放入d<br />
&nbsp; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (a*b)(c*d)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 運算*,取出d,c 並將(c*d)結果放入堆疊<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (a*b)+(c*d)&nbsp;&nbsp;&nbsp;&nbsp; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 運算+,取出(c*d),(a*b)並將(a*b)+(c*d)放入堆疊 <br />
<br />
<br />
&nbsp; 故以程式計算四則運算的流程如後:<br />
&nbsp; <br />
&nbsp; 中序式=&gt;後序式=&gt;運算處理<br />
<br />
&nbsp; (中序式轉換為後序式的作法因為需要較多篇幅,在此先省略。)<br />
&nbsp;&nbsp; <br />
2.佇列應用:走迷宮<br />
<br />
&nbsp; 走迷宮是一種考驗計憶力的遊戲。(not yet!)<br />
<img src ="http://www.blogjava.net/temptation/aggbug/335950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:42 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(12)--堆疊與佇列 stack&amp;queue I</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335949.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:41:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335949.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335949.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335949.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335949.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335949.html</trackback:ping><description><![CDATA[<p>1.堆疊處理資料的方式都是在同一邊進行，也就是由一端插入，也由同一端刪除,</p>
<br />
<p>&nbsp; 因此，堆疊處理資料的順序為後進先出(Last In First Out,LIFO)；平日生活中,也有</p>
<br />
<p>&nbsp; 資些堆疊的例子，如堆積木、蓋房子...等，都是一層一層的堆上去，如果要拆下來</p>
<br />
<p>&nbsp; 的話，也只能從最上面卸下來。</p>
<br />
<p>&nbsp;</p>
<br />
<p>&nbsp; 堆疊範例:</p>
<br />
<p>&nbsp;</p>
<br />
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3 </p>
<br />
<p>&nbsp; 放入1&nbsp; &nbsp;&nbsp; 放入2&nbsp;&nbsp; 2&nbsp;&nbsp; 放入3&nbsp;&nbsp; 2&nbsp; 取出3&nbsp; 2&nbsp; 取出2&nbsp; &nbsp; 取出1</p>
<br />
<p>&nbsp; &nbsp;&nbsp; =&gt;&nbsp; 1&nbsp; &nbsp;&nbsp; =&gt;&nbsp;&nbsp; 1&nbsp; &nbsp; &nbsp; =&gt;&nbsp;&nbsp; 1&nbsp; &nbsp;&nbsp; =&gt;&nbsp; 1&nbsp; &nbsp;&nbsp; =&gt;&nbsp; 1&nbsp; &nbsp; =&gt;</p>
<br />
<p>&nbsp;</p>
<br />
<p>2.佇列和堆疊處理資料方式是不大一樣的，佇列是屬於先進先出（First In First</p>
<br />
<p>&nbsp; Out,FIFO）的觀念，在平日生活中可以看到很多屬於佇列的例子，如排隊上公車、</p>
<br />
<p>&nbsp; 排隊買電影票或是超市排隊付賬等，皆是先到達的先處理、後到的後處理。</p>
<br />
<p>&nbsp;</p>
<br />
<p>&nbsp; 佇列範例:</p>
<br />
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3 </p>
<br />
<p>&nbsp; 放入1&nbsp; &nbsp;&nbsp; 放入2&nbsp;&nbsp; 2&nbsp;&nbsp; 放入3&nbsp;&nbsp; 2&nbsp; 取出1&nbsp; 3&nbsp; 取出2&nbsp; &nbsp; 取出3</p>
<br />
<p>&nbsp; &nbsp;&nbsp; =&gt;&nbsp; 1&nbsp; &nbsp;&nbsp; =&gt;&nbsp;&nbsp; 1&nbsp; &nbsp; &nbsp; =&gt;&nbsp;&nbsp; 1&nbsp; &nbsp;&nbsp; =&gt;&nbsp; 2&nbsp; &nbsp;&nbsp; =&gt;&nbsp; 3&nbsp; &nbsp; =&gt;</p>
<br />
<p>&nbsp;</p>
<br />
<p>3.堆疊與佇列的實作可以陣列或串列的方?荍@。其基本操作的部份可分為放入</p>
<br />
<p>&nbsp; (push）、取出（pop）、查詢（retrieve）、檢查是否滿溢（isfull）、</p>
<br />
<p>&nbsp; 檢查是否為空（isempy）</p>
<br />
<img src ="http://www.blogjava.net/temptation/aggbug/335949.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:41 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335949.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(11)--排序sort </title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335948.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:40:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335948.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335948.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335948.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335948.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 汽泡排序法（Bubble Sort）︰如同汽泡由下逐漸往上升，越大的汽泡上升越快。說明：假設現有資料如下，欲將其由小排列至大。(若有N筆資料,則共需N-1回合)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 小&nbsp; =&gt; =&gt; =&gt; 排序方向 =&...&nbsp;&nbsp;<a href='http://www.blogjava.net/temptation/archive/2010/10/23/335948.html'>阅读全文</a><img src ="http://www.blogjava.net/temptation/aggbug/335948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:40 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(10)--搜尋與排序search &amp; sort </title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335947.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:38:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335947.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335947.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335947.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335947.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335947.html</trackback:ping><description><![CDATA[<p>1&nbsp;&nbsp;&nbsp;&nbsp; 搜尋︰<br />
</p>
<p>1.1&nbsp;&nbsp;&nbsp;&nbsp; 循序搜尋（線性搜尋）︰<br />
</p>
<p>將資料重頭到尾檢查過一遍，即為循序搜尋。</p>
<p>&nbsp;</p>
<p>eg.假設有以下十筆資料,欲找數字7</p>
<p>&nbsp;</p>
<p>1 2 3 4 5 6 7 8 9 10</p>
<p>&nbsp;</p>
<p>=&gt; 由左至右，共需比對7次。</p>
<p>&nbsp;</p>
<p>若考慮一般情形的話，循序搜尋N筆資料所須比對的次數最大為N，最小為1，故平均起來需要比對(1+N)/2次。</p>
<p>&nbsp;</p>
<p>範例程式</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>int data[10]={1,2,3,4,5,6,7,8,9,10};</p>
            <font color="orange">//target為要找的資料 </font>
            <p>int target=7;</p>
            <font color="orange">//found=0為預設值,若找到則將其設為1 </font>
            <p>int found=0;</p>
            <p>for(int i=0;i&lt;10;i++)</p>
            <p>&nbsp; if(target==data[i]){</p>
            <p>&nbsp; &nbsp; found=1;</p>
            <p>&nbsp; &nbsp; printf("found!at %d position\n",i);</p>
            &nbsp; <font color="orange">//break可以中斷for迴圈 </font>
            <p>&nbsp; &nbsp; break;</p>
            <p>}</p>
            <p>&nbsp;</p>
            <p>if(found==0)</p>
            <p>&nbsp; printf("not found!\n");</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>1.2&nbsp;&nbsp;&nbsp;&nbsp; 二元搜尋 (Binary Search)<br />
</p>
<p>二元搜尋法所使用的時機是當資料以經排好順序後，我們先從中間值開始找起。若目標值比中位數來的小，則往小的另一半繼續找；反之則往大的另一邊找。如此尋找的次數便可有效地降低，最多不會超過log2(N)+1次。</p>
<p>&nbsp;</p>
<p>eg. 假設有以下10筆資料，欲找數字7，共需比對4次!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table>
    <p>&nbsp;</p>
    <p>
    <tbody>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
            <td>5</td>
            <td>6</td>
            <td>7</td>
            <td>8</td>
            <td>9</td>
            <td>10</td>
            <td>=&gt;一開始先找中間值5(亦可先找6)，未找到。
            <td></td>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            <tr>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td>6</td>
                <td>7</td>
                <td>8</td>
                <td>9</td>
                <td>10</td>
                <td>=&gt;將範圍縮小成右半邊，再找其中間值8，未找到。</td>
            </tr>
            <p>&nbsp;</p>
            <p>
            <tr>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td>6</td>
                <td>7</td>
                <td></td>
                <td></td>
                <td></td>
                <td>=&gt;將範圍縮小成左半邊，再找其中間值6，未找到。</td>
            </tr>
            </p>
            <p>
            <tr>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td>7</td>
                <td></td>
                <td></td>
                <td></td>
                <td>=&gt;將範圍縮小成右半邊，只剩下7，Bingo找到了!</td>
            </tr>
            </p>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            </p>
        </table>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>範例程式</p>
        <p>
        <p style="margin-left: 48px"></p>
        <table class="prg" width="700">
            <tbody>
                <tr>
                    <td>
                    <p>&nbsp;</p>
                    <p>int data[10]={1,2,3,4,5,6,7,8,9,10};</p>
                    <font color="orange">//target為要找的資料，found=0為尚未找到，found=1為找到。 </font>
                    <p>int target=7,found=0;</p>
                    <font color="orange">//low為左邊界索引值，high為右邊界索引值，mid為中間值索引值 </font>
                    <p>int low=0,high=9,mid;</p>
                    <font color="orange">//當左邊界小於或等於右邊界 及 尚未找到資料時，重覆執行 </font>
                    <p>while(low &lt;= high &amp;&amp; found==0){</p>
                    <p>&nbsp; &nbsp; mid=(low+high)/2;</p>
                    <p>&nbsp; &nbsp; if(target==data[mid]){</p>
                    <p>&nbsp; &nbsp; &nbsp; &nbsp; found=1;</p>
                    <p>&nbsp; &nbsp; &nbsp; &nbsp; printf("found!at %d position\n",mid);</p>
                    <p>&nbsp; &nbsp; }</p>
                    <p>&nbsp; &nbsp; else if(target &gt; data[mid])</p>
                    <p>&nbsp; &nbsp; &nbsp; &nbsp; low=mid+1;//重設左邊界</p>
                    <p>&nbsp; &nbsp; else if(target &lt; data[mid])</p>
                    <p>&nbsp; &nbsp; &nbsp; &nbsp; high=mid-1;//重設右邊界</p>
                    <p>}</p>
                    <p>&nbsp;</p>
                    <p>if(found==0)</p>
                    <p>&nbsp; &nbsp; printf("not found!\n");</p>
                    <p>&nbsp;</p>
                    </td>
                </tr>
            </tbody>
        </table>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>3&nbsp;&nbsp;&nbsp;&nbsp; 想想看</p>
        <p>3.1&nbsp;&nbsp;&nbsp;&nbsp; 若將以上二分搜尋法的程式碼while(low&lt;=high&amp;&amp;found==0)中的low&lt;=high移除，請問執行結果會有何影響?(提示：可分為找到資料與找不到資料兩種狀況來討論)</p>
        <p>3.2&nbsp;&nbsp;&nbsp;&nbsp; 請修改以上範例程式碼，使其可以將比對次數印出來。</p>
        <p>3.3&nbsp;&nbsp;&nbsp;&nbsp; 想想看：請寫一程式，比較當處理不同的資料數量時(10、100、10000)，線性搜尋與二元搜尋法執行的效率。並請將效率量化。</p>
<img src ="http://www.blogjava.net/temptation/aggbug/335947.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:38 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335947.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(9)--結構struct</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335946.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335946.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335946.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335946.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335946.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335946.html</trackback:ping><description><![CDATA[<p>1.&nbsp;&nbsp;&nbsp;&nbsp; 結構（struct）可以讓程式的資料在宣告與使用上更有可讀性與更方便維護。</p>
<p>&nbsp;</p>
<p>2.&nbsp;&nbsp;&nbsp;&nbsp; 結構的定義（struct definition）</p>
<p>syntax:</p>
<p>struct 結構名稱{</p>
<p>&nbsp; &nbsp; 資料型態1 變數1;</p>
<p>&nbsp; &nbsp; 資料型態2 變數2;</p>
<p>&nbsp; &nbsp; &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</p>
<p>};</p>
<p>&nbsp;</p>
<p>eg:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>struct addressbook{</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; char name[20];</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; char sex;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; int age;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; char address[80];</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; char tel[10];</p>
            <p>};</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>3.&nbsp;&nbsp;&nbsp;&nbsp; 結構變數的宣告與使用︰</p>
<p>syntax:</p>
<p>struct 結構名稱 結構變數1, 結構變數2&#8230;&#8230;&#8230;..;</p>
<p>結構變數.變數=數值;</p>
<p>&nbsp;</p>
<p>eg:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>struct addressbook myaddressbook[20];</p>
            <p>strcpy(myaddressbook[0].name,"John");</p>
            <p>myaddressbook[0].sex='M';</p>
            <p>myaddressbook[0].age=18;</p>
            <p>strcpy(myaddressbook[0].tel,"03-3946001");</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>4.&nbsp;&nbsp;&nbsp;&nbsp; 想想看</p>
<p>4.1 請你設計一個角色扮演游戲的人物結構,其屬性有姓名,年齡,性別,生命力,法力....等並讓使用者可新增多名不同角色.</p>
<p>4.2&nbsp;&nbsp;&nbsp;&nbsp; 請你設計一通訊錄程式，可讓使用者新增、查詢及刪除通訊錄裡面的資料。通訊錄裡的資料可包括姓名、電話、地址、電子郵件等欄位。</p>
<img src ="http://www.blogjava.net/temptation/aggbug/335946.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:37 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335946.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(7)--陣列 Array</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335944.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335944.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335944.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335944.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335944.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335944.html</trackback:ping><description><![CDATA[<h4>1﹑一般變數與陣列、指標變數的差異</h4>
<p>&nbsp;</p>
<p>一般的變數僅能儲存單筆的資料，而陣列與指標透過記憶體配置的方式，可以儲</p>
<p>存較大量的資料。陣列與指標變數儲存的是記憶體的位址，若要存取資料時，要透過</p>
<p>特別的方式才能存取到資料本身。此外，陣列與指標變數，必需在配置足夠的記憶體</p>
<p>空間後，才可以用來儲存資料。</p>
<p>&nbsp;</p>
<p>
<h4>2﹑陣列與指標的差異</h4>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2.1陣列空間大小於宣告時即決定且不能再更改，而指標之大小可動態改變。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2.2陣列可方便利用索引(index)的方式存取其中某筆資料。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2.3指標在儲存資料前，需先手動配置(malloc)記憶體空間。而陣列則在宣告時即</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 由系統自動配置。</p>
<p>&nbsp;</p>
<p>
<h4>3﹑陣列的宣告</h4>
<p>&nbsp;</p>
syntax: 陣列名稱[陣列大小]={初始值1,初始值2,...}<font color="orange"> //初始值可不設定 </font>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>eg.&nbsp; int no1[4],no2[]={1,2,3,4};</p>
            &nbsp;&nbsp;&nbsp;&nbsp; char name[6]="Avatar";<font color="orange"> //字元陣列可用""設定其初始值 </font>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>4﹑陣列的存取</h4>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 4.1存取陣列中索引值為n的資料(索引值從0開始,假設共有N筆資料,0 &lt;= n &lt; N)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; syntax: 陣列名稱[索引]={初始值1,初始值2,...}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; eg.</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; int no1[4]={1,2,3,4},no2[5];</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //印出 no1[] 中最後一筆數字4 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("The last no1 is %d",no1[3]);</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //讀入5筆數字到 no2 陣列 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;5;i++)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; scanf("%d",&amp;no2[i]);</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 4.2存取整個陣列(指向陣列的起始位址)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; syntax: 陣列名稱</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; eg.</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; char myname[20]="Jonny",yourname[20];</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("Please input your name:");</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //利用 scanf 讀入資料到字元陣列中,注意 yourname 前不加 &amp; </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; scanf("%s",yourname);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("Hello!%s,I am %s.",yourname,myname);</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>5﹑二維陣列與 N 維陣列</h4>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; eg. </p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            &nbsp;&nbsp;&nbsp;&nbsp; int matrix[5][5]<font color="orange"> //可儲存5x5的矩陣或行列式 </font>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>6﹑想想看</h4>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 6.1 輸出一個字串的逆字串(reverse-string),eg. egg=&gt;gge, apple=&gt;elppa(hint:用strlen()可得字串的長度)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 6.2 判斷字串是否為迴文(palindrome),eg. esssse,eye,racecar</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 6.3 宣告變數score,儲存某次段考某班50位學生的國、英、數、物理、化學等五科之學期成績及加權平均。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 6.4 計算兩矩(方)陣m1,m2相乘及相加的結果. </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 6.5 給你十筆身高，請你計算出其平均數,眾數及標準差.(範例資料:170,175,176,176,177,180,160,165,170,186) </p>
<img src ="http://www.blogjava.net/temptation/aggbug/335944.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:36 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335944.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(8)--指標  Pointer</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335945.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335945.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335945.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335945.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335945.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335945.html</trackback:ping><description><![CDATA[<p>1.指標的宣告</p>
<p>&nbsp;</p>
<p>syntax: 指標資料型態 *指標名稱</p>
<p>eg.</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; int *no;</p>
            <p>&nbsp; &nbsp; char *str;</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>2.配置記憶體(malloc-memory allocation)</p>
<p>&nbsp;</p>
<p>指標變數在儲存資料前,需先配置記憶體空間才可使用。</p>
<p>&nbsp;</p>
<p>syntax: 指標名稱=(指標資料型態 *)malloc(sizeof(指標資料型態)*長度)</p>
<p>eg. </p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; int *no; </p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; char *str;</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //配置 4 int 的空間 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; no=(int *)malloc(sizeof(int)*4);</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //配置 20 char 的空間 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; str=(char *)malloc(sizeof(char)*20)</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>3.存取指標所指向的資料-解參(dereference)</p>
<p>&nbsp;</p>
<p>指標變數所儲存的是資料所在的記憶體位址,當在指標變數前加上*,即可存取其所指的資料,</p>
<p>&nbsp;</p>
<p>syntax: *指標名稱</p>
<p>eg. </p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //a為一般的整數變數,ptr_a為指標變數 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; int a=5,*ptr_a;</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //將ptr_a指向a的位址(注意,在此不需另外配置記憶體,為甚麼?) </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; ptr_a=&amp;a;</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //*ptr_a=a+1 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; (*ptr_a)++;</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //印出 ptr_a,a的內容 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("ptr_a=%x,*ptr_a=%d,&amp;a=%x,a=%d",ptr_a,*ptr_a,&amp;a,a);</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
&nbsp; &nbsp;
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>4.釋放所配置的記憶體空間(delete)</p>
<p>&nbsp;</p>
<p>因為電腦的記憶體空間有限,若要有效的利用,可釋放不用的指標變數。</p>
<p>&nbsp;</p>
<p>(雖然理論上在程式結束後,所有的空間都會被自動釋放)</p>
<p>&nbsp;</p>
<p>syntax: delete(指標名稱)</p>
<p>&nbsp;</p>
<p>eg.</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; char *name;</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //配置 8 char 的空間 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; name=(char *)malloc(sizeof(char)*8);</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //將"Alibaba"複製至name陣列中 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; strcpy(name,"Alibaba");</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //暫時釋放空間 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; delete(name);</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //重新配置更大的空間 20 char </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; name=(char *)malloc(sizeof(char)*20);</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //將"Snow White"複製至name陣列中 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; strcpy(name,"Snow White");</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //養成好習慣,釋放配置過的空間。 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; delete(name);</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>5.指標的用途 </p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 5.1可以讓函數用傳址呼叫(pass by address)的方式來傳地參數,如此在函數內的改變可以影響到參數。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 5.2透過動態地配置(malloc)與釋放(delete)記憶體,可以更有效地利用記憶體空間。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 5.3可以用來模擬一些較進階的程式技巧及資料結構,如樹(tree),串列(link-list)等。</p>
<p>6.想一想</p>
<img src ="http://www.blogjava.net/temptation/aggbug/335945.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:36 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335945.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(6)--函數 function </title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335943.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:35:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335943.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335943.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335943.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335943.html</trackback:ping><description><![CDATA[<h4>1.函數的用途</h4>
<p>&nbsp;</p>
<p>函數(function)又稱函式﹐亦和副程式(subprogram)相似﹐利用函數有下列優點:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1.1 當某項工作需重覆多次時﹐可寫成函數﹐在需要時呼叫它即可﹐這樣可避免程式碼的重覆撰寫。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1.2 因為將程式分割成各有所司任務的函數﹐因此程式易於了解﹐架構清楚。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1.3 每一函數有獨立性﹐因為函數內的區域變數只有函數本身可使用﹐所以維護也容易。（不會兩三天後就看不懂程式碼）</p>
<p>&nbsp;</p>
<p>
<h4>2.函數的範例</h4>
<p>&nbsp;</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//定義hello函數 </font>
            <p>void hello(){</p>
            <p>&nbsp; printf(&#8220;Hello!\n&#8221;); </p>
            <p>}</p>
            <p>&nbsp;</p>
            <p>int main(){</p>
            &nbsp; <font color="orange">//呼叫hello函數 </font>
            <p>&nbsp; &nbsp; hello();</p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
&nbsp; &nbsp; &nbsp;
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>3.函數的定義 </h4>
<p>&nbsp;</p>
<p>syntax:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>回傳資料型態 函數名稱([資料型態1 參數1, 資料型態2 參數2&#8230;..]){ </p>
            <p>&nbsp; 敘述1 </p>
            <p>&nbsp; 敘述2&#8230;.. </p>
            <p>&nbsp; [return 回傳值] </p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>e.g.</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//下列函式可回傳x、y中較大的值 </font>
            <p>int max(int x,int y){ </p>
            <p>&nbsp; if(x&gt;y) </p>
            <p>&nbsp; &nbsp; return x; </p>
            <p>&nbsp; else </p>
            <p>&nbsp; &nbsp; return y; </p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<p>說明：如不須回傳資料，則回傳資料型態可用void，如不須傳入參數，則可留空白，如前例void hello()，</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>4.函數的呼叫</h4>
<p>&nbsp;</p>
<p>syntax:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>函數名稱([參數1,參數2&#8230;..]) </p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>e.g.</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>show_table();//無參數,且無回傳值的函數</p>
            <p>minvalue=min(15,10);//有參數,且有回傳值的函數&nbsp; </p>
            <p>printf("%d",max(5,10));</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<p>說明：呼叫函數時，應在呼叫前先行定義函數。另外呼叫函數時，所傳入的參數數目與資料型態須與函數宣告時一致。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>5.區域變數與全域變數(Local variables vs Glabal variables)</h4>
<p>&nbsp;</p>
<p>
<p>&nbsp;</p>
<p>函數內的變數為區域變數﹐外界無法使用。 </p>
<p>若定義全域變數﹐則在定義後的所有段落均可使用。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>請見下例:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>int a=1;</p>
            <p>void foo_before(int c)</p>
            <p>{</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; int d=a+1;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; a=c+d;</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //b=...錯誤!在此不能存取b，因其為main的區域變數。 </font>
            <p>}</p>
            <p>&nbsp;</p>
            <p>int main()</p>
            <p>{</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; int b=2;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; foo_before();</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("a=%d",a);</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //d=...錯誤!在此不能存取d,因其為foo_before的區域變數。 </font><font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //foo_after()...錯誤!在此不能呼叫foo_after,因foo_after的宣告在後。 </font>
            <p>}</p>
            <p>&nbsp;</p>
            <p>void foo_after()</p>
            <p>{ <font color="orange">/* Empty function */</font> }</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>6.想想看，請寫出下列函數。</h4>
<p>&nbsp;</p>
<p>6.1.min(x,y)(求最小值)</p>
<p>6.2.power(x,y)(求x的y次方值)</p>
<p>6.3.ctf(degree)(將攝氏溫度轉華氏溫度,公式為 華式溫度=1.8*攝式溫度+32)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>7.參數傳遞方式</h4>
<p>&nbsp;</p>
<p>7.1 傳值呼叫（pass by value）</p>
<p>&nbsp; &nbsp; 參數利用複製值的方式傳遞﹐於函數結束時參數的值不受改變。</p>
<p>7.2 傳址呼叫（pass by address）</p>
<p>&nbsp; &nbsp; 參數利用指標方式傳遞（記憶體位址）﹐參數值可被更改。</p>
<p>7.3 傳參考呼叫（pass by reference）</p>
<p>&nbsp; &nbsp; 機制類似傳址呼叫﹐但使用上較為簡單方便﹐僅需在函數定義時註明&amp;。</p>
<p>7.4 e.g.﹕</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//x:pass by value,y:pass by address,z:pass by reference </font>
            <p>int foo(int x,int *y,int &amp;z){</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; x=x+1;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; *y=*y+2;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; z=z+3;</p>
            <p>}</p>
            <p>&nbsp;</p>
            <p>int main(){</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; int a,*b,c;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; a=5,b=&amp;a,c=a;</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //執行foo()函式前，a，*b，c數值為5,5,5 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf(&#8220;a=%d,b=%d,c=%d\n&#8221;,a,*b,c);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; foo(a,b,c);</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //執行foo()函式後，a，*b，c數值為5,7,8 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf(&#8220;a=%d,b=%d,c=%d\n&#8221;,a,*b,c);</p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>7.5 想想看:</p>
<p>&nbsp; 7.5.1 寫一函數swap(x,y)﹐能將兩參數調換。</p>
<p>&nbsp; 7.5.2 寫一函數order(x,y,z)﹐能將三參數依大小順序排好。</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p>
<p>
<h4>8.遞迴函數（recursion）</h4>
<p>&nbsp;</p>
<p>8.1&nbsp;&nbsp;&nbsp;&nbsp; 遞迴函數具有以下特徵</p>
<p>特徵1﹕呼叫自身函數 </p>
<p>特徵2﹕需有終止條件</p>
<p>&nbsp;</p>
<p>8.2&nbsp;&nbsp;&nbsp;&nbsp; 範例一﹕階乘 N!=N*(N-1)*(N-2)*...*2*1</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//階乘函數 fact(n)=n*(n-1)*(n-2)*&#8230;&#8230;*1 </font>
            <p>int fact(int n){</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; if(n==1)</p>
            &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; return 1; <font color="orange">//終止條件 </font>
            <p>&nbsp; &nbsp; &nbsp; &nbsp; else</p>
            &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; return n*fact(n-1); <font color="orange">//呼叫自身函數 </font>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>8.3 範例二﹕費布納西數列 f(x)=f(x-2)+f(x-1),f(0)=1;f(1)=1</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>int fib(int n){</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; if(n==0||n==1)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; return 1;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; else</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; return fib(n-2)+fib(n-1);</p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>8.4 範例三﹕河內塔</p>
<p>&nbsp;</p>
<p>8.4.1 遊戲說明:請參考九章出版社網址</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://ccmp.chiuchang.com.tw/toy/hanoi/hanoi.html">http://ccmp.chiuchang.com.tw/toy/hanoi/hanoi.html</a></p>
<p>&nbsp;</p>
<p>8.4.2 線上河內塔游戲</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.shes.hcc.edu.tw/~oddest/math181.swf">http://www.shes.hcc.edu.tw/~oddest/math181.swf</a></p>
<p>&nbsp;</p>
<p>8.4.3 河內塔範例程式</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>#include &lt;stdio.h&gt;</p>
            <p>#include &lt;stdlib.h&gt;</p>
            <p>int steps=0;</p>
            <p>void honai(char src,char dest,char aux,int disk)</p>
            <p>{</p>
            <p>&nbsp; &nbsp; if(disk&gt;=1)</p>
            <p>&nbsp; &nbsp; {</p>
            <p>&nbsp; &nbsp; &nbsp; honai(src,aux,dest,disk-1);</p>
            <p>&nbsp; &nbsp; &nbsp; printf("move disk %d from %c to %c\n",disk,src,dest);</p>
            <p>&nbsp; &nbsp; &nbsp; steps++;</p>
            <p>&nbsp; &nbsp; &nbsp; honai(aux,dest,src,disk-1);</p>
            <p>&nbsp; &nbsp; }</p>
            <p>}</p>
            <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p>
            <p>int main()</p>
            <p>{</p>
            <p>&nbsp; &nbsp; int disk;</p>
            <p>&nbsp; &nbsp; printf("How many disks?");</p>
            <p>&nbsp; &nbsp; scanf("%d",&amp;disk);</p>
            <p>&nbsp; &nbsp; honai('A','C','B',disk);</p>
            <p>&nbsp; &nbsp; printf("Total steps:%d\n",steps);</p>
            <p>&nbsp; &nbsp; system("pause");</p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>8.5 想想看</p>
<font color="orange">//待補遞迴之練習題及範例</font>
<img src ="http://www.blogjava.net/temptation/aggbug/335943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:35 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(5)--迴圈for,while,do while</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335942.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335942.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335942.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335942.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335942.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335942.html</trackback:ping><description><![CDATA[<p>1.電腦與人類的作業模式有很大的不同：電腦在執行重覆性的工作時不會抱怨。只要有足夠的時間，配合設計好的程式，我們可以用電腦來處理大量重覆的工作以節省保貴的人力。</p>
<p>&nbsp;</p>
<p>2.在程式中控制重覆執行的機制稱為「迴圈」。我們可以設計迴圈重覆執行的次數及條件，來達到想要的結果。</p>
<p>&nbsp;</p>
<p>
<h4>3.執行次數固定的迴圈：</h4>
<h3>for</h3>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 3.1.sytax:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>for(起始值;執行條件;遞增或遞減敘述式){</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //敘述式 </font>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 3.2.e.g.1</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//印出100次Hello World! </font>
            <p>for(int i=1;i&lt;=100;i++)</p>
            <p>&nbsp; &nbsp; printf("Hello World!\n");</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 3.2. e.g.2</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//計算從1到1000的所有奇數的和 </font>
            <p>int sum=0;</p>
            <p>for(int i=1;i&lt;=1000;i=i+2)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; sum=sum+i;</p>
            <p>printf("sum=%d\n",sum);</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 3.3. e.g.3</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//輸入n個數字,並計算其平均 </font>
            <p>int n,x;</p>
            <p>float sum=0,avg;</p>
            <p>printf("Please input n");</p>
            <p>scanf("%d",&amp;n)</p>
            <p>for(int i=1;i&lt;=n;i++)</p>
            <p>{</p>
            <p>&nbsp; scanf("%d",&amp;x);</p>
            <p>&nbsp; sum=sum+x;</p>
            <p>}</p>
            <p>avg=sum/n;</p>
            <p>printf("avg=%f\n",avg);</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>4.執行次數不固定的迴圈：</h4>
<h3>while</h3>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 4.1.syntax:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>while(執行條件){</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //敘述式 </font>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 4.2.eg</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p><font color="orange">/* 假設某細菌一小時可由一個分裂為兩個，在不考慮細菌死亡的情況下，計算經多久時間細菌數量會達10000個。 */</font></p>
            <p>int no=1,time=0;</p>
            <p>int limit=10000;</p>
            <p>while(no &lt; limit){</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; no=no*2;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; time++;</p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>5.至少執行一次的迴圈：</h4>
<h3>do while</h3>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 5.1.syntax:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>do{</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //敘述式 </font>
            <p>}while(執行條件);</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 5.2.eg:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//本程式會偵測使用者的按鍵,按q可結束。 </font>
            <p>char key;</p>
            <p>do{</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; key=getchar();</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("%c",key);</p>
            <p>}while(key!='q');</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>6.巢狀迴圈(nested loop)</h4>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 6.1.若迴圈內有其他的迴圈,那麼就稱為巢狀迴圈，如下例：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 迴圈1</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp;
            <p style="margin-left: 48px"></p>
            <table class="prg" width="700">
                <tbody>
                    <tr>
                        <td>
                        <p>&nbsp;</p>
                        <p>&nbsp;&nbsp;&nbsp;&nbsp; 迴圈2</p>
                        <p>&nbsp;&nbsp;&nbsp;&nbsp; <font color="orange">/*敘述B*/</font></p>
                        <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
                        </td>
                    </tr>
                </tbody>
            </table>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; <font color="orange">/*敘述A*/</font></p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 在上例中,若A,B分別為迴圈1及2的敘述式(statement),且其原本的執行次數分別為m及n次,則B的總執行次數為m*n次。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 6.2.eg:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //本程式可印出九九乘法表 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; for(int i=1;i&lt;=9;i++)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; for(int j=1;j&lt;=9;j++)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("%d*%d=%d\n",i,j,i*j);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a name="practice"></a></p>
<p>
<h4>7.想想看</h4>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 7.1.請寫一程式,可以計算X^Y(X的Y次方)。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 輸出入範例: </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; please input x: 2</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; please input y: 5</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Answer:&nbsp;&nbsp;&nbsp;&nbsp; 2^5=32</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<hr />
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 7.2.請寫一程式,可計算X!(X!=X*(X-1)(X-2)..*2*1)。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 輸出入範例：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Please input x: 5</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Anser:&nbsp;&nbsp;&nbsp;&nbsp; 5!=5*4*3*2*1=120</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<hr />
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 7.3.請設計一程式,輸入正整數N,可印出下列結果</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; *</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; **</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; ***</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; ****</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; *......* =&gt;共N個*號</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 輸出入範例:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Please input N: 4</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; *</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; **</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; ***</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; ****</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<hr />
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 7.4 溫度轉換</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 請你設計一程式，可印出下列的溫度轉換表(攝氏Celsius&lt;-&gt;華氏Fahrenheit)。請注意，起始溫度(Starting Temperature)，終止溫度(Ending Temperature)，及溫度遞增值(Temperature Increment)應讓使用者可自行輸入。轉換公式為：F=1.8*C+32.0。(C為攝氏溫度，F為華氏溫度) </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 輸出入範例：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Enter Starting Temperature：0</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Enter Ending Temperature：10</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Enter Temperature Increment：2</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Celsius&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Fahrenheit</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 32</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 35.6</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 39.2</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 42.8</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 46.4</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 50</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<hr />
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 7.5 銀行貸款</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 「真能貸」銀行提供優惠貸款給一般民眾。現在請你幫忙設計程式來計算償還事宜。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 請留意，銀行每月計息一次，而你的程式必須可接受使用者輸入貸款額度,年利率,每月償還金額,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 並且將償還貸款的年限及支付利息的累計金額計算列印出來。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 範例輸出入:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 請輸入貸款額度: 10000</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 請輸入年利率(%): 3.6</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 請輸入每月還款額度: 2000</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 年&nbsp;&nbsp;&nbsp;&nbsp; 月&nbsp;&nbsp;&nbsp;&nbsp; 利息&nbsp;&nbsp;&nbsp;&nbsp; 償還金額&nbsp;&nbsp;&nbsp;&nbsp; 未償金額&nbsp;&nbsp;&nbsp;&nbsp; 累計利息</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; 30.00&nbsp;&nbsp;&nbsp;&nbsp; 2000.00&nbsp;&nbsp;&nbsp;&nbsp; 8030.00&nbsp;&nbsp;&nbsp;&nbsp; 30.00</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; 24.09&nbsp;&nbsp;&nbsp;&nbsp; 2000.00&nbsp;&nbsp;&nbsp;&nbsp; 6054.09&nbsp;&nbsp;&nbsp;&nbsp; 54.09</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp; 18.16&nbsp;&nbsp;&nbsp;&nbsp; 2000.00&nbsp;&nbsp;&nbsp;&nbsp; 4072.25&nbsp;&nbsp;&nbsp;&nbsp; 72.25</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp; 12.22&nbsp;&nbsp;&nbsp;&nbsp; 2000.00&nbsp;&nbsp;&nbsp;&nbsp; 2084.47&nbsp;&nbsp;&nbsp;&nbsp; 84.47</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp; 6.25&nbsp;&nbsp;&nbsp;&nbsp; 2000.00&nbsp;&nbsp;&nbsp;&nbsp; 90.72&nbsp;&nbsp;&nbsp;&nbsp; 90.72</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp; 0.27&nbsp;&nbsp;&nbsp;&nbsp; 90.72&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp; 90.99</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 貸款還清時間為 0 年 6 月</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 累計利息:90.99元</p>
<img src ="http://www.blogjava.net/temptation/aggbug/335942.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:34 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335942.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(4)--流程控制 flow-control</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335940.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:33:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335940.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335940.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335940.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335940.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335940.html</trackback:ping><description><![CDATA[<p>1.當程式遇到分岐的條件，需要作出不同的選擇時，可利用流程控制的功能來達成。</p>
<p>2.流程控制的語法有兩種：if else 與 swich case。</p>
<p>3.
<h4>if else</h4>
<p>&nbsp;</p>
<p>syntax:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>if(條件判斷1){</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 敘述1</p>
            <p>}</p>
            <p>else if(條件判斷2){</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 敘述2</p>
            <p>}</p>
            <p>&#8230;&#8230;</p>
            <p>else{</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 敘述</p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>e.g.1:</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//本程式可以將百分數轉換成對應的A、B、C、D、E等級 </font>
            <p>int score;</p>
            <p>printf("請輸入你的分數:");</p>
            <p>scanf("%d",&amp;score);</p>
            <p>if(score&gt;90)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("A:great!");</p>
            <p>else if(score&gt;80)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("B:good");</p>
            else if(score==77)<font color="orange"> //注意!判斷是否相等需用"==",不可用"=" </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("Luck no!");</p>
            <p>else if(score&gt;70)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("C:average");</p>
            <p>else if(score&gt;60)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("D:not so good");</p>
            <p>else </p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("E:WORK HARDER!");</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>e.g.2</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//本程式使用巢狀(nested)的if else來判斷使用者的性別與年齡 </font>
            <p>int age;</p>
            <p>char sex;</p>
            <p>printf("請輸入性別(男m,女f):");</p>
            scanf("%c",&amp;sex);; <font color="orange">//讀入一字元，亦可用sex=getchar() </font>
            <p>printf("請輸入年齡:");</p>
            <p>scanf("%d",&amp;age);</p>
            <p>printf("您好,");</p>
            <p>if(sex=='m')</p>
            <p>{</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; if(age&gt;=60)</p>
            <p>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("歐吉桑!");</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; else</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("黑狗兄!");</p>
            <p>}</p>
            <p>else</p>
            <p>{</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; if(age&gt;=50)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("歐巴桑!");</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; else</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("黑貓妹!");</p>
            <p>}</p>
            <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>說明:比較符號與邏輯符號的用法請見下表</p>
<p>&nbsp;</p>
<table class="withborder">
    <p>&nbsp;</p>
    <p>
    <tbody>
        <tr>
            <td>符號</td>
            <td>意義</td>
            <td>範例</td>
        </tr>
        <p>&nbsp;</p>
        <p>
        <tr>
            <td>&gt; &gt;=</td>
            <td>大於 大於或等於</td>
            <td>if(a&gt;=1)</td>
        </tr>
        </p>
        <p>
        <tr>
            <td>&lt; &lt;=</td>
            <td>小於 小於或等於</td>
            <td>if(a&lt;10)</td>
        </tr>
        </p>
        <p>
        <tr>
            <td>== !=</td>
            <td>等於 不等於</td>
            <td>if(x==y)</td>
        </tr>
        </p>
        <p>
        <tr>
            <td>&amp;&amp;</td>
            <td>AND(兩個條件都要成立)</td>
            <td>if(a&gt;=1&amp;&amp;a&lt;=100)</td>
        </tr>
        </p>
        <p>
        <tr>
            <td>||</td>
            <td>OR(兩個條件只要一者成立即可)</td>
            <td>if(a&gt;=1||y&lt;5)</td>
        </tr>
        </p>
        <p>
        <tr>
            <td>!</td>
            <td>NOT(true-&gt;false,false=&gt;true)</td>
            <td>if(!(a==b))</td>
        </tr>
        </p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        </p>
    </table>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>4.
    <h4>switch case</h4>
    <p>&nbsp;</p>
    <p>syntax:</p>
    <p>
    <p style="margin-left: 48px"></p>
    <table class="prg" width="700">
        <tbody>
            <tr>
                <td>
                <p>&nbsp;</p>
                <p>switch(變數){</p>
                &nbsp; case 條件1:<font color="orange"> //敘述1 </font>
                <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;</p>
                &nbsp; case 條件2:<font color="orange"> //敘述2 </font>
                <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;</p>
                <p>&nbsp; &#8230;&#8230;&#8230;&#8230;&#8230;</p>
                &nbsp; default:<font color="orange"> //預設敘述式 </font>
                <p>}</p>
                <p>&nbsp;</p>
                </td>
            </tr>
        </tbody>
    </table>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>eg:</p>
    <p>
    <p style="margin-left: 48px"></p>
    <table class="prg" width="700">
        <tbody>
            <tr>
                <td>
                <p>&nbsp;</p>
                <font color="orange">//本程式可以計算兩個整數的四則運算 </font>
                <p>int x,y,z;</p>
                <p>char op;//op(operator)為運算符號</p>
                <p>printf("please input: op x y\n");</p>
                <p>scanf("%c%d%d", &amp;op, &amp;x,&amp;y);</p>
                <p>switch(op){</p>
                <p>&nbsp; &nbsp; &nbsp; case '+':z=x+y;break;</p>
                <p>&nbsp; &nbsp; &nbsp; case '-':z=x-y;break;</p>
                <p>&nbsp; &nbsp; &nbsp; case '*':z=x*y;break;</p>
                <p>&nbsp; &nbsp; &nbsp; case '/':z=x/y;break;</p>
                <p>}</p>
                <p>printf("%d%c%d=%d\n",x,op,y,z);&nbsp; &nbsp; </p>
                <p>&nbsp;</p>
                </td>
            </tr>
        </tbody>
    </table>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p><a name="practice"></a></p>
    <p>5.想想看</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 1.假設公元曆法的閏年規則如下：當年份可被4整除時為閏年，但是被100整除卻不是閏年，但是若又可被400整除時，又可視為閏年。請你設計一程式，可以判斷某一年是否為閏年(leap year)(提示:整除與否可用求餘數符號%來判斷,例100%5=0,5%3=2)。</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 例:</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 輸入:2000&nbsp; 輸出:2000 is a leap year</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 輸入:1997&nbsp; 輸出:1997 is not a leap year</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp;
    <hr />
    <p>&nbsp;</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 2.請設計一遊戲，可讓電腦自動猜出玩家所想的數字。假設數字為介於1到100之間的整數，而每當電腦猜一次時，玩家必需回應所猜的數字的結果。(答案比較大：輸入'g',小：輸入'l',答對：輸入'c')，直到猜對為止。</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 例:假設玩家所想數字為66,</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 電腦猜:50&nbsp; 玩家輸入: g</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 電腦猜:75&nbsp; 玩家輸入: l</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 電腦猜:66&nbsp; 玩家輸入: c</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; ps.本題需配合迴圈來實作</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp;
    <hr />
    <p>&nbsp;</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 3.某便利商店推出週年慶活動，若同一商品買超過一定數量時便可打折，打折的資訊請參考下表。假設顧客每次只買一種下列商品，請你寫一程式，可輸入購買商品的編號，單價及數量，並計算經折扣後的價格。</p>
    <p>&nbsp;</p>
    <table class="withborder">
        <p>&nbsp;</p>
        <p>
        <tbody>
            <tr>
                <td rowspan="2">編號</td>
                <td rowspan="2">商品</td>
                <td colspan="3">折扣</td>
            </tr>
            <p>&nbsp;</p>
            <p>
            <tr>
                <td>1~2個</td>
                <td>3~5個</td>
                <td>5個以上</td>
            </tr>
            </p>
            <p>
            <tr>
                <td>1</td>
                <td>御飯團</td>
                <td>95折</td>
                <td>9折</td>
                <td>85折</td>
            </tr>
            </p>
            <p>
            <tr>
                <td>2</td>
                <td>陽光三明治</td>
                <td>9折</td>
                <td>85折</td>
                <td>8折</td>
            </tr>
            </p>
            <p>
            <tr>
                <td>3</td>
                <td>AB優酪乳</td>
                <td>9折</td>
                <td>8折</td>
                <td>7折</td>
            </tr>
            </p>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            </p>
        </table>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 範例輸出入：</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 請輸入商品編號：1</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 請輸入商品單價：20</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 請輸入商品數量：3</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 您好!您購買的商品價格為：54元</p>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp;
        <hr />
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 4.電阻(register)的數值可由標示在其上的條紋(band)顏色來辨識(請參見下圖)。其規則如下：前兩個條紋為兩位數電阻值，第三個條紋顏色則代表其所乘的10次方值，第四個條紋則為誤差值(本程式可不考慮誤差值)。請你寫一程式，可將某一電阻(已知其電阻值)上的前三個條紋顏色列印出來。</p>
        <p>&nbsp;</p>
        <table class="withborder">
            <p>&nbsp;</p>
            <p>
            <tbody>
                <tr>
                    <td>顏色</td>
                    <td>第一、二條紋代表值</td>
                    <td>第三條紋代表值</td>
                </tr>
                <p>&nbsp;</p>
                <p>
                <tr>
                    <td>Gold</td>
                    <td>-</td>
                    <td>10^-1</td>
                </tr>
                </p>
                <p>
                <tr>
                    <td>Black</td>
                    <td>0</td>
                    <td>10^0=1</td>
                </tr>
                </p>
                <p>
                <tr>
                    <td>Brown</td>
                    <td>1</td>
                    <td>10^1</td>
                </tr>
                </p>
                <p>
                <tr>
                    <td>Red</td>
                    <td>2</td>
                    <td>10^2</td>
                </tr>
                </p>
                <p>
                <tr>
                    <td>Orange</td>
                    <td>3</td>
                    <td>10^3</td>
                </tr>
                </p>
                <p>
                <tr>
                    <td>Yellow</td>
                    <td>4</td>
                    <td>10^4</td>
                </tr>
                </p>
                <p>
                <tr>
                    <td>Green</td>
                    <td>5</td>
                    <td>10^5</td>
                </tr>
                </p>
                <p>
                <tr>
                    <td>Blue</td>
                    <td>6</td>
                    <td>10^6</td>
                </tr>
                </p>
                <p>
                <tr>
                    <td>Violet</td>
                    <td colspan="2">7</td>
                </tr>
                </p>
                <p>
                <tr>
                    <td>Grey</td>
                    <td colspan="2">8</td>
                </tr>
                &nbsp;&nbsp;&nbsp;&nbsp;
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <tr>
                    <td>White</td>
                    <td colspan="2">9</td>
                </tr>
                </p>
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                </p>
            </table>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 例:</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 電阻值10歐姆(10*10^0)，其前三個條紋顏色為Brown，Black，Black。</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 電阻值220歐姆(22*10^1)，其前三個條紋顏色為Red，Red，Brown。</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 電阻值560000歐姆(56*10^4)，其前三個條紋顏色為Green，Blue，Yellow。</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 電阻值為2.4歐姆(24*10^-1)，其前三個條紋顏色為Red，Yellow，Gold。</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 範例輸出入：</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; Enter register value:220</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; Red Red Brown</p>
<img src ="http://www.blogjava.net/temptation/aggbug/335940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:33 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335940.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(3)--輸出與輸入input &amp; output</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335939.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:32:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335939.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335939.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335939.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335939.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335939.html</trackback:ping><description><![CDATA[<h4>1.&nbsp;&nbsp;&nbsp;&nbsp; 輸出（output）</h4>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 將資料輸出到螢幕（或檔案、印表機等設備）</p>
<p>
<h4>2.&nbsp;&nbsp;&nbsp;&nbsp; 輸入（input）</h4>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 將資料從鍵盤輸入到電腦（或從檔案、滑鼠等設備輸入）</p>
<p>
<h4>3.&nbsp;&nbsp;&nbsp;&nbsp; 標準輸出入（從鍵盤輸入，並從螢幕輸出）</h4>
<p>&nbsp;</p>
<p>3.1.&nbsp;&nbsp;&nbsp;&nbsp; 標準輸出</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 3.1.1.&nbsp;&nbsp;&nbsp;&nbsp; syntax:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf(格式字串[,參數])</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 格式字串內可以包括固定的<font color="orange">字元</font>或<font color="orange">轉換規格符號</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 例:
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; char name[20]="Avatar";</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; int age=18;</p>
            &nbsp;&nbsp;&nbsp;&nbsp; <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //%s 對應 name , <font color="red">%d</font> 對應 <font color="red">age</font> </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("Hi <font color="orange">%s</font>,you are <font color="red">%d</font> years old.\n",<font color="orange">name</font>,<font color="red">age</font>);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 3.1.2.常用的轉換規格符號如下&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; %d&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 整數(int)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 如 1,3,101</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; %f&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 小數(float)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 如 3.14</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; %e,%g&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 小數,以科學記號表示(float)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 如 1.2e-2</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; %c&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 字元(char)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 如 'a','$','5','\n'</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; %s&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 字串(string)&nbsp;&nbsp;&nbsp;&nbsp; 如 "happy","All4you"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 3.1.3.&nbsp;&nbsp;&nbsp;&nbsp; eg：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; float temp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; char grade='A',name[5]="Joyce"; </p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("Hello,everyone!");</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("9*8*7*6=<font color="orange">%d</font>",9*8*7*6);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("Today's temperature is <font color="orange">%f</font>",temp); &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
            &nbsp;&nbsp;&nbsp;&nbsp; <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //%s 對應 name,%c 對應 grade </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; printf("<font color="orange">%s</font> is a smart boy,he got <font color="orange">%c</font> in all subjects. ",name,grade);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<h4></h4>
3.2.&nbsp;&nbsp;&nbsp;&nbsp; 標準輸入
<h4></h4>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 3.2.1.&nbsp;&nbsp;&nbsp;&nbsp; syntax:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; scanf(格式字串[,位址])</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 格式的用法同printf</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 位址為輸入資料儲存的地方，通常表示為 <strong><font color="orange">&amp;</font></strong>變數名稱(指標及陣列除外)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 3.2.2.&nbsp;&nbsp;&nbsp;&nbsp; eg:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; int money,math_sco,eng_sco,chi_sco;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; char name[20],sex;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; scanf("%d",<font color="orange">&amp;</font>money);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; scanf("%d%d%d",<font color="orange">&amp;</font>math_sco,<font color="orange">&amp;</font>eng_sco,<font color="orange">&amp;</font>chi_sco);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; scanf("%c",<font color="orange">&amp;</font>sex);</p>
            &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; scanf("%s",name);<font color="orange"> //注意!因為name為陣列,故不加&amp; </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<h4>4.&nbsp;&nbsp;&nbsp;&nbsp; 修飾符號</h4>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 在 <font color="orange">%</font>與<font color="orange">轉換規格字元</font>之間，可使用修飾字元來修改原本的轉換規格符號。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 較有用的修飾符號請見下表：</p>
<p>&nbsp;</p>
<table class="withborder">
    <p>&nbsp;</p>
    <p>
    <tbody>
        <tr>
            <td>修飾符號</td>
            <td>代表意義</td>
            <td>例</td>
        </tr>
        <p>&nbsp;</p>
        <p>
        <tr>
            <td>數字(digit(s))</td>
            <td>設定最少使用長度</td>
            <td>%5d</td>
        </tr>
        </p>
        <p>
        <tr>
            <td>點(.digit(s))</td>
            <td>設定精準度(若用在%e、%e則為小數點位數)，若位數不足則會補0。</td>
            <td>%.2f</td>
        </tr>
        </p>
        <p>
        <tr>
            <td>-</td>
            <td>輸出資料靠左對齊</td>
            <td>%-10s</td>
        </tr>
        &nbsp;&nbsp;&nbsp;&nbsp;
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <tr>
            <td>+</td>
            <td>輸出有號數時，若為正數則加一個正數，若為負數則加一負號。</td>
            <td>%+5.2f</td>
        </tr>
        </p>
        <p>
        <tr>
            <td>0</td>
            <td>若用於數字類型，實際數值前的位置會補0，而非空白字元。</td>
            <td>%010d</td>
        </tr>
        </p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        </p>
    </table>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>
    <h4>5.&nbsp;&nbsp;&nbsp;&nbsp; 其他輸出入函式</h4>
    <p>&nbsp;</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 5.1.&nbsp;&nbsp;&nbsp;&nbsp; 字元輸出入</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; putc()、getc()、putchar()、getchar()</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 5.2.&nbsp;&nbsp;&nbsp;&nbsp; 字串輸出入</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; puts()、gets()</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 5.3.&nbsp;&nbsp;&nbsp;&nbsp; 檔案輸出入：</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; fopen(),fclose(),fprintf(),fscanf(),fputs),fgets()</p>
    <p>&nbsp;</p>
    <p>
    <h4>6.&nbsp;&nbsp;&nbsp;&nbsp; 試試看</h4>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; 6.1&nbsp;&nbsp;&nbsp;&nbsp; 請設計一程式，可輸入個人基本資料，並將其輸出。</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 個人基本資料應含：姓名(10)、出生年(10)、性別(10)、電話(10)及地址(20)</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; (括號後為欄寬，並需靠左對齊)</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 例：</p>
    <p>&nbsp;</p>
    <table>
        <p>&nbsp;</p>
        <p>
        <tbody>
            <tr>
                <td>Name&nbsp;&nbsp;&nbsp;&nbsp; </td>
                <td>Year&nbsp;&nbsp;&nbsp;&nbsp; </td>
                <td>Sex&nbsp;&nbsp;&nbsp;&nbsp; </td>
                <td>Phone&nbsp;&nbsp;&nbsp;&nbsp; </td>
                <td>Address&nbsp;&nbsp;&nbsp;&nbsp; </td>
            </tr>
            <p>&nbsp;</p>
            <p>
            <tr>
                <td>Avatar&nbsp;&nbsp;&nbsp;&nbsp; </td>
                <td>1990&nbsp;&nbsp;&nbsp;&nbsp; </td>
                <td>M&nbsp;&nbsp;&nbsp;&nbsp; </td>
                <td>3946000&nbsp;&nbsp;&nbsp;&nbsp; </td>
                <td>Taoyuan&nbsp;&nbsp;&nbsp;&nbsp; </td>
            </tr>
            </p>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            </p>
        </table>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 6.2&nbsp;&nbsp;&nbsp;&nbsp; 請設計一程式，可輸入書籍基本資料，並將其輸出。</p>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 個人基本資料應含：書名(10)、作者(10)、出版社(10)、定價(10)及ISBN(20)</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; (括號後為欄寬，並需靠左對齊)</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 例：</p>
        <p>&nbsp;</p>
        <table>
            <p>&nbsp;</p>
            <p>
            <tbody>
                <tr>
                    <td>Title&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>Author&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>Publisher&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>Price&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>Pages&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>ISBN</td>
                </tr>
                <p>&nbsp;</p>
                <p>
                <tr>
                    <td>Republic&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>Plato&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>Oxford&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>100&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>500&nbsp;&nbsp;&nbsp;&nbsp; </td>
                    <td>123-456-789-0</td>
                </tr>
                </p>
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                </p>
            </table>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; 6.3&nbsp;&nbsp;&nbsp;&nbsp; 請按下列格式輸入資料並利用修飾字元控制輸出資料的格式</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 6.3.1&nbsp;&nbsp;&nbsp;&nbsp; 輸入資料</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; a.15&nbsp;&nbsp;&nbsp;&nbsp; b.2.54&nbsp;&nbsp;&nbsp;&nbsp; c.0.000123&nbsp;&nbsp;&nbsp;&nbsp; d.6E-3</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 6.3.2&nbsp;&nbsp;&nbsp;&nbsp; 輸出資料</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; a1.<font color="#00428c">0000</font>15&nbsp;&nbsp;&nbsp;&nbsp; (最小長度為6，靠右對齊)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; a2.000015&nbsp;&nbsp;&nbsp;&nbsp; (最小長度6，前面不足部份補0)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; b.+002.540&nbsp;&nbsp;&nbsp;&nbsp; (顯示正負號，整數部份最少長度3，小數部份最小長度3，不足補0)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; c.1.23E-004&nbsp;&nbsp;&nbsp;&nbsp; (使用科學記號表示)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; d.0.006&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; (表示到小數點3位)</p>
<img src ="http://www.blogjava.net/temptation/aggbug/335939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:32 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(2)--資料型態與變數 data types &amp; variable</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335938.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335938.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335938.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335938.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335938.html</trackback:ping><description><![CDATA[<h4>1. 在C語言裡，所有的資料均有其對應的資料型態。其中基本資料型態如下:</h4>
<p>(下表資料與編譯軟體有關，以下為 MINGW32-GNU GCC on WinXP 之參考數值)</p>
<p>&nbsp;</p>
<table class="withborder">
    <p>&nbsp;
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <tbody>
        <tr>
            <td>資料型態</td>
            <td>宣告方式</td>
            <td>資料長度</td>
            <td>資料範圍</td>
            <td>說明/有效位數</td>
            <p>&nbsp;
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            </p>
            <tr>
                <p>&nbsp;
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <td>字元</td>
                </p>
                <p>
                <td><font color="orange">char</font></td>
                </p>
                <p>
                <td>1 byte</td>
                </p>
                <p>
                <td>-2<sup>7</sup>~2<sup>7</sup>-1 相當於 <font color="orange">-128~127</font></td>
                </p>
                <p>
                <td></td>
                </p>
                <p>&nbsp;
                <p>&nbsp;</p>
                </p>
            </tr>
            <p>&nbsp;
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            <tr>
                <p>&nbsp;
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <td rowspan="4">整數</td>
                </p>
                <p>
                <td><font color="orange">short int</font></td>
                </p>
                <p>
                <td>2 bytes</td>
                </p>
                <p>
                <td>-2<sup>15</sup>~2<sup>15</sup>-1 相當於 <font color="orange">-32,768~32,767</font></td>
                </p>
                <p>
                <td></td>
                </p>
                <p>&nbsp;
                <p>&nbsp;</p>
                </p>
            </tr>
            </p>
            <p>
            <tr>
                <p>&nbsp;
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <td><font color="orange">int</font></td>
                </p>
                <p>
                <td>4 bytes</td>
                </p>
                <p>
                <td>-2<sup>31</sup>~2<sup>31</sup>-1 相當於 <font color="orange">-2,147,483,648~2,147,483,647</font></td>
                </p>
                <p>
                <td></td>
                </p>
                <p>&nbsp;
                <p>&nbsp;</p>
                </p>
            </tr>
            </p>
            <p>
            <tr>
                <p>&nbsp;
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <td><font color="orange">long int</font></td>
                </p>
                <p>
                <td>4 bytes</td>
                </p>
                <p>
                <td>-2<sup>31</sup>~2<sup>31</sup>-1 相當於 <font color="orange">-2,147,483,648~2,147,483,647</font></td>
                </p>
                <p>
                <td></td>
                </p>
                <p>&nbsp;
                <p>&nbsp;</p>
                </p>
            </tr>
            </p>
            <p>
            <tr>
                <td><font color="orange">long long int</font></td>
                <p>&nbsp;
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <td>8 bytes</td>
                </p>
                <p>
                <td>-2<sup>63</sup>~2<sup>63</sup>-1 相當於 <font color="orange">-9,223,372,036,854,775,808LL~9,223,372,036,854,775,807LL</font></td>
                </p>
                <p>
                <td></td>
                </p>
                <p>&nbsp;
                <p>&nbsp;</p>
                </p>
            </tr>
            </p>
            <p>
            <tr>
                <p>&nbsp;
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <td rowspan="3">浮點數(小數)</td>
                </p>
                <p>
                <td><font color="orange">float</font></td>
                </p>
                <p>
                <td>4 bytes</td>
                </p>
                <p>
                <td><font color="orange">3.4E-38~3.4E+38</font></td>
                </p>
                <p>
                <td><font color="orange">6位數</font></td>
                </p>
                <p>&nbsp;
                <p>&nbsp;</p>
                </p>
            </tr>
            </p>
            <p>
            <tr>
                <p>&nbsp;
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <td><font color="orange">double</font></td>
                </p>
                <p>
                <td>8 bytes</td>
                </p>
                <p>
                <td><font color="orange">1.7E-308~1.7E+308</font></td>
                </p>
                <p>
                <td><font color="orange">15位數</font></td>
                </p>
                <p>&nbsp;
                <p>&nbsp;</p>
                </p>
            </tr>
            </p>
            <p>
            <tr>
                <p>&nbsp;
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <td><font color="orange">long double</font></td>
                </p>
                <p>
                <td>12 bytes</td>
                </p>
                <p>
                <td><font color="orange">E-4931~E+4932</font></td>
                </p>
                <p>
                <td><font color="orange">18位數</font></td>
                </p>
                <p>&nbsp;
                <p>&nbsp;</p>
                </p>
            </tr>
            </p>
            <p>
            <p>&nbsp;</p>
            </p>
            </p>
        </table>
        &nbsp;&nbsp;&nbsp;&nbsp;
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>
        <h4>2. 變數</h4>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 2.1 在程式中我們常會需要利用變數來代表某些資料或數值，利如金額可用money，平均可用average等，在對變數命名時需儘量盡量選擇有意義且易嘹解的名稱，而不要因貪一時方便用類似a，b，x，y等名稱，否則不僅別人看不懂，連程式作者也可能在一段時間後忘了變數代表的意義</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 2.2 C語言變數命名的規定：第一個字元必需是英文字母或底線(_)，之後可用數字、英文字母或底線(_)，但是不可以用保留字。</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 例：num&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 合法</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; _money&nbsp;&nbsp;&nbsp;&nbsp; 合法</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; sum4&nbsp;&nbsp;&nbsp;&nbsp; 合法</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 3score&nbsp;&nbsp;&nbsp;&nbsp; 不合法，第一個字不可為數字</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; main&nbsp;&nbsp;&nbsp;&nbsp; 不合法，不可為保留字</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 2.3 變數宣告：變數在使用之前要經過宣告的程序，如下</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; syntax：資料型態 變數名稱[=初始值]</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; eg：</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
        <p style="margin-left: 48px"></p>
        <table class="prg" width="700">
            <tbody>
                <tr>
                    <td>
                    <p>&nbsp;</p>
                    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; int no;</p>
                    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; int money=100,sum=0;</p>
                    &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; char sex='M';<font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //留意!字元要用單引號括住 </font>
                    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
                    </td>
                </tr>
            </tbody>
        </table>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
        <p>
        <h4>3.有號數(signed)與無號數(unsigned)</h4>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 若無特別宣告，則基本上所有上述資料型態皆可儲存有號數，亦即可記錄正、負數。若只處理正數時，可在宣告變數時在前面加上unsigned(其資料範圍會變大)。</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 例：</p>
        &nbsp;&nbsp;&nbsp;&nbsp;
        <p style="margin-left: 48px"></p>
        <table class="prg" width="700">
            <tbody>
                <tr>
                    <td><font color="orange">unsigned</font> short int count;<font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //count記錄範圍為0~65535</font></td>
                </tr>
            </tbody>
        </table>
        <p>&nbsp;</p>
        </font>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
        <p>
        <h4>4.溢位(overflow)及缺位(underflow)</h4>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 當變數儲存的資料超過其上限時稱為「溢位」，超過下限時稱為「缺位」。</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 例：</p>
        &nbsp;&nbsp;&nbsp;&nbsp;
        <p style="margin-left: 48px"></p>
        <table class="prg" width="700">
            <tbody>
                <tr>
                    <td>short int x=32768,y=-32769;<font color="orange"> //錯誤!x為溢位錯誤，y為缺位錯誤。</font></td>
                </tr>
            </tbody>
        </table>
        <p>&nbsp;</p>
        </font>
        <p>&nbsp;</p>
        <p>
        <h4>5.常數宣告</h4>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 若我們希望變數不因程式執行而改變，可將其宣告為常數。其宣告方式為在資料型態前加<strong><font color="orange">const</font></strong>即可</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 例：</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp;
        <p style="margin-left: 48px"></p>
        <table class="prg" width="700">
            <tbody>
                <tr>
                    <td><font color="orange">const</font> float PI=3.1415;</td>
                </tr>
            </tbody>
        </table>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
        <p>
        <h4>6.字串(String)及陣列(Array)</h4>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 字串及陣列可以儲存連續的字元或數字，例如人名，全班成績等資料。</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 例：</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp;
        <p style="margin-left: 48px"></p>
        <table class="prg" width="700">
            <tbody>
                <tr>
                    <td>
                    <p>&nbsp;</p>
                    <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //字串需用雙引號" "括住 </font>
                    <p>&nbsp;&nbsp;&nbsp;&nbsp; char name[20]="Avatar";</p>
                    <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //數字陣列用大括號{ }括住,中間用逗號隔開‧&nbsp; &nbsp; </font>
                    <p>&nbsp;&nbsp;&nbsp;&nbsp; int score[5]={99,100,50,70,80};</p>
                    <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
                    </td>
                </tr>
            </tbody>
        </table>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p>
        <p>
        <h4>7.自訂資料型態：</h4>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 有時後如果遇到較複雜的資料，可利用自訂資料型態的功能。請參考<font color="orange">struct</font>(結構)和<font color="orange">enum</font>(列舉)的用法。</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp;
        <p style="margin-left: 48px"></p>
        <table class="prg" width="700">
            <tbody>
                <tr>
                    <td>
                    <p>&nbsp;</p>
                    <p>&nbsp;&nbsp;&nbsp;&nbsp; <font color="orange">struct</font> book{</p>
                    &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; char title[20];&nbsp;&nbsp;&nbsp;&nbsp; <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //書名<br />
                    </font>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; char author[10];<font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //作者<br />
                    </font>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; int value;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //價格<br />
                    </font>
                    <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }</p>
                    &nbsp;&nbsp;&nbsp;&nbsp; <font color="orange">enum</font> color {red,green,blue,white,black}; <font color="orange">//顏色:紅綠藍白黑 </font>
                    <p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
                    </td>
                </tr>
            </tbody>
        </table>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>
        <h4>8.試試看：</h4>
        <p>&nbsp;</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 8.1 請問以下資料適用於何種資料型態?並請舉例</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; a.目前全世界的人口數量&nbsp;&nbsp;&nbsp;&nbsp; b.一部DVD電影的價格&nbsp;&nbsp;&nbsp;&nbsp; c.撲克牌的點數</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; d.某銀行的定存利率 &nbsp;&nbsp;&nbsp;&nbsp; e.圓周率(精確到小數點第10位)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; g.某國國名</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 8.2 請問以下資料適用於何種資料型態?</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; a.1024&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; b.'x'&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; c.'\n'&nbsp;&nbsp;&nbsp;&nbsp; d.2.54&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; e.1234567890</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; f.1.23E+20&nbsp;&nbsp;&nbsp;&nbsp; g.1.5E-100 &nbsp;&nbsp;&nbsp;&nbsp; h."I love programming!"</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp; 8.3 請從鍵盤輸入以上資料，並從螢幕輸出。(利用scanf()及printf())</p>
<img src ="http://www.blogjava.net/temptation/aggbug/335938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:29 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程式設計(1)--程式設計概論</title><link>http://www.blogjava.net/temptation/archive/2010/10/23/335937.html</link><dc:creator>外包工</dc:creator><author>外包工</author><pubDate>Sat, 23 Oct 2010 01:27:00 GMT</pubDate><guid>http://www.blogjava.net/temptation/archive/2010/10/23/335937.html</guid><wfw:comment>http://www.blogjava.net/temptation/comments/335937.html</wfw:comment><comments>http://www.blogjava.net/temptation/archive/2010/10/23/335937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/temptation/comments/commentRss/335937.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/temptation/services/trackbacks/335937.html</trackback:ping><description><![CDATA[<h4>1.程式的種類</h4>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 直譯式：如Basic(原始碼-&gt;直譯器逐行執行)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 編譯式：如C(原始碼-&gt;(編譯器編譯)-&gt;執行檔-&gt;(載入記憶體)-&gt;執行)</p>
<p>&nbsp;</p>
<p>
<h4>2.C程式的架構</h4>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2.1程式通常含有以下幾個部份</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 函式(function):可執行特定功能,例:原料-&gt;機器加工-&gt;產品</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 主程式(main program):為整個程式的進入點(Entry Point)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2.2幾個相關概念：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 2.2.1.變數(variable):存放資料的容器(對應資料種類而有不同大小)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 2.2.2.保留字(key word):如include,main,int等系統特定功能的字,不可作為變數或函式名稱</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 2.2.3.語法(syntax):如同英文有文法一樣,程式語言也有特定的語法。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 2.2.4.風格(style)：寫程式時留意以下幾點,養成良好的程式風格,可使程式易讀,容易維護。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; (1)縮排:適當的縮排，可以讓程式看起來整齊、美觀、易讀，例:</p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; if(x==1)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; {</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; y=x+2;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; z=y+2;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; }</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; (2)註解:註解符號後的文字並不會編譯執行,可用來註明程式碼。例:</p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; // 這是註解 </font>
            <p>&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; /* 這也是註解</p>
            <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 但是可以跨越多行 */</p>
            <p>&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; (3)使用有意義的變數及函式命名,例:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 計算和可以用 sum ,平均可以用 average 當變數名稱,而儘量不要用xyz等不具特定意義的名稱。</p>
<h4>3.試看看!</h4>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 說明:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1.以下橘色部份(以//開頭,或<font color="orange">/* */</font>包住的文字)為註解,可不必輸入</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2.每行完整敘述(statement)的後面要加上分號(;)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 3.1第一個程式 印出 Hello,world!</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p><font color="orange">/* 第一個程式 印出 Hello,world!首先需引入(include)標準輸出入標頭檔(header file) */</font></p>
            <p>#include &lt;stdio.h&gt;</p>
            <p>#include &lt;stdlib.h&gt;</p>
            <font color="orange">//main為主程式進入點 </font>
            <p>int main(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //printf 可在螢幕上印出數字或字串,本例印出Hello,World </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("Hello,world!");</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //system("pause")為暫停指令 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; system("pause");</p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<hr />
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.2 第二個程式 計算並印出 1+1=?</p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//第一個程式 印出 Hello,world!第二個程式 計算並印出 1+1=? </font>
            <p>#include &lt;stdio.h&gt;</p>
            <p>#include &lt;stdlib.h&gt;</p>
            <p>int main(){</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //印出1+1的結果,%d為整數格式,對應後面1+1的結果 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("1+1=%d",1+1);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; system("pause");</p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>
<hr />
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.3 第三個程式 How old are you?</p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//第三個程式 How old are you? </font>
            <p>#include &lt;stdio.h&gt;</p>
            <p>#include &lt;stdlib.h&gt;</p>
            <p>int main(){</p>
            &nbsp; <font color="orange">//宣告age為整數變數,用來記錄年齡&nbsp;&nbsp;&nbsp;&nbsp; </font>
            <p>&nbsp; int age;</p>
            <p>&nbsp; printf("How old are you?");</p>
            &nbsp; <font color="orange">//scanf為從鍵盤讀入資料,並存入age中(留意age前的&amp;符號) </font>
            <p>&nbsp; scanf("%d",&amp;age);</p>
            <p>&nbsp; printf("You are %d years old!\n",age);</p>
            &nbsp; <font color="orange">//利用if else來判斷使用者是否成年(age&gt;=20) </font>
            <p>&nbsp; if(age&gt;=20)</p>
            <p>&nbsp; &nbsp; &nbsp; printf("You are adult!\n");</p>
            <p>&nbsp; else</p>
            <p>&nbsp; &nbsp; &nbsp; printf("You are too young!\n");</p>
            <p>&nbsp; system("pause");</p>
            <p>}</p>
            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<hr />
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.4 第四個程式 印出 1+2+3+...+n的和</p>
<p>
<p style="margin-left: 48px"></p>
<table class="prg" width="700">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <font color="orange">//第四個程式 印出 1+2+3+...+n的和 </font>
            <p>#include &lt;stdio.h&gt;</p>
            <p>#include &lt;stdlib.h&gt;</p>
            <p>int main(){</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; int n,sum=0;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("Please input n=");</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //scanf從鍵盤讀入數字至n </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; scanf("%d",&amp;n);</p>
            <font color="orange">&nbsp;&nbsp;&nbsp;&nbsp; //利用for迴圈計算1+2+3+...+n和 </font>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; for(int i=1;i&lt;=n;i++)</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; sum=sum+i;</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; printf("The sum is %d\n",sum);</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp; system("pause");</p>
            <p>}</p>
            </td>
        </tr>
    </tbody>
</table>
 <img src ="http://www.blogjava.net/temptation/aggbug/335937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/temptation/" target="_blank">外包工</a> 2010-10-23 09:27 <a href="http://www.blogjava.net/temptation/archive/2010/10/23/335937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>