不切实际的使用了太多的变数

上传人:mg****85 文档编号:49572867 上传时间:2018-07-31 格式:PPT 页数:30 大小:203KB
返回 下载 相关 举报
不切实际的使用了太多的变数_第1页
第1页 / 共30页
不切实际的使用了太多的变数_第2页
第2页 / 共30页
不切实际的使用了太多的变数_第3页
第3页 / 共30页
不切实际的使用了太多的变数_第4页
第4页 / 共30页
不切实际的使用了太多的变数_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《不切实际的使用了太多的变数》由会员分享,可在线阅读,更多相关《不切实际的使用了太多的变数(30页珍藏版)》请在金锄头文库上搜索。

1、Chapter 6陣列陣列 (Array)(Array)不切實際的使用了太多的變數/*不切實際的例子,用了一堆變數 */ #include int main(void) /用 10 個變數來儲存學生的成績int A, B, C, D, E, F, G, H, I, J;/從標準輸入取得 10 位學生的成績/分別儲存在 A J 的變數裡面/對每位學生的成績作處理/讓使用者查詢每位學生的成績/結論是: 不切實際的使用了太多變數 2陣列是什麼陣列是由相同型態相同型態的相關資料 項所組成的一種資料結構 -陣列元素都是連續連續的存放在 記憶體裡面的陣列必須有哪些東西 -陣列名稱 * 陣列名稱也是識別字

2、-一對中括號 -陣列足標 (Subscript) * 必須是整數或整數運算式怎麼存取陣列內的元素 -透過陣列名稱陣列足標 -name0, name1, name2陣列的名稱 c 陣列裡面的所有元素都具有相同的相同的 名稱名稱陣列 c 內元素的位置編號c6-45 6 0 72 1543 -89 0 62 -3 1c0 c1 c2 c3c9c8c7c5c43怎麼使用陣列 使用陣列元素就好像使用變數一樣c3 = 1;printf(“%d“, c3); 陣列足標可以是運算式-c5-2 跟 c3 跟 c10-7 是一樣的-c10 跟 cx 是一樣的 (如果 x = 10)-c5 跟 cx+y 是一樣的

3、(如果 x + y = 5)4宣告陣列 如同變數一樣,陣列在使用前必須先宣告 宣告方法- -陣列型態陣列型態 陣列名稱陣列名稱 陣列大小陣列大小 -陣列大小必須為常數值,不能是變數值 -例子: * int c10; * float grade64; 如何宣告同一型態的許多陣列? -如同我們宣告相同型態的變數一樣 -int c10, d100, x8; 陣列的足標從 0 開始,n-1結束 -int c3 擁有三個陣列元素 c0、c1、c2 -int xn 擁有 n 個陣列元素 x0、x1xn-15陣列初始化 (1/2) 宣告的時候給定初始值 -int c5 = 1, 2, 3, 4, 5 ; -

4、編譯器會在編譯的時候偷偷幫我們加入以下的指令 * c0=1; c1=2; c2=3; c3=4; c4=5; -如果初始值的數目小於陣列的元素個數,剩下的元 素將自動設定為零 * int c5 = 1, 2, 3 ; * c0=1, c1=2, c2=3, c3=0, c4 =0 -如果初始值的數目大於陣列的元素個數,會造成語 法錯誤 * int c5= 1, 2, 3, 4, 5, 6 ; -如果省略陣列元素個數,則編譯器會根據初始值的 個數來決定陣列的大小 * int c = 1, 2, 3; 產生 3 個元素的陣列6透過指定運算子來初始化陣列的元素,通常會配合重複結 構來做設定的動作in

5、t count, c5;for( count = 0; count #define PERSON 40#define SIZE 10void main() int count;int responsePERSON = 1,2,6,4,8,5,9,7,8,10,1,6,3,8,6,10,3,8,2,7,6,5,7,6,8,6,7,5,6,6,5,6,7,5,6,4,8,6,8,10 ;int frequencySIZE = 0 ; for(count = 0 ; count #define SIZE 10void main() int i,j;int nSIZE = 19, 3, 15, 7,

6、11, 9, 13, 5, 17, 1;printf(“%s%13s%17sn“,“分數“,“人數“,“統計圖“);for(i = 0 ; i #define SIZE 10void main() int i;int FSIZE= 0, 1;for( i = 2; i char *strcpy(char *目的字串, char *來源字串)-包含結尾符號 (NULL):0 char *strncpy(char *目的字串, char *來源字串, n)-不包含結尾符號 (NULL):0 char *strcat(char *字串1, char *字串2)-字串2第一個字元會蓋掉字串一的NULL

7、 char *strncat(char *字串1, char *字串2, n)-字串2的n個字元會皆在字串1的後面,並在最後補上 結尾符號 013字串轉換 #include int atoi(char *string), long atol(char *string), double atof(char *string)-字串轉數字的函式,輸入皆為字串 long strtol(char *來源字串, char *剩餘字串, int 基 底), double strtod(char *來源字串, char *剩餘字 串)-優點:能將剩餘的部分傳回,以方便做其他處理14從鍵盤讀取字串/*透過 sc

8、anf 從鍵盤讀取字串到程式裡面 */ #include int main(void) char string40;int i;printf(“請輸入字串:“);scanf(“%s“, string);printf(“您輸入的字串為:%sn“, string);/印出字元陣列裡面的個別元素for(i = 0; stringi != 0; i+)printf(“%c “,stringi);printf(“n“);return 0; 請輸入自串:this is 您輸入的字串為: this t h i s15Get 家族 #include char *gets(char *s)-一次抓一字串,需要給

9、記憶體 int getchar(void) -一次抓一字元,傳回該字元的ASCII碼16用gets()改寫/*透過 scanf 從鍵盤讀取字串到程式裡面 */ #include int main(void) char string40;int i;printf(“請輸入字串:“);gets(string);printf(“您輸入的字串為:%sn“, string);/印出字元陣列裡面的個別元素for(i = 0; stringi != 0; i+)printf(“%c “,stringi);printf(“n“);return 0; 請輸入自串:this is 您輸入的字串為: this is

10、 t h i s i s17用getchar()改寫/*透過 scanf 從鍵盤讀取字串到程式裡面 */ #include int main(void) char string40;int i= 0, c;printf(“請輸入字串:“);do c = getchar(); stringi+ = c; while(c != n);stringi = 0;printf(“您輸入的字串為:%sn“, string);/印出字元陣列裡面的個別元素for(i = 0; stringi != 0; i+)printf(“%c “,stringi);printf(“n“);return 0; 請輸入自串:

11、this is 您輸入的字串為: this is t h i s i s18從鍵盤讀取字串說明 如果使用 scanf 來讀取 -必須使用轉換指定詞 %s%s -後面直接給定字元陣列的名稱即可,無須加上 function_call(pass);C 會自動的以模擬傳參考呼叫 (Call by Reference) 的方式 來將陣列傳給函式-亦即被呼叫的函式能更改位於呼叫者中的原始陣列-陣列的名稱其實便是陣列的第一個元素的位址-所以事實上我們是把位址傳過去 * 被呼叫的函式就知道陣列放在哪個記憶體位址當然我們也可以只傳入陣列的某個元素-就好像我們傳入一般的變數一般的變數一樣-call_functio

12、n(pass10);傳遞陣列到函式裡面20函式的原型宣告怎麼寫 若某一個函式想要接收一個陣列(位址),要怎麼寫 原型宣告-void function_call(int a); 或者-void function_call(int ); 但是通常我們會在傳入的時候,順便跟函式講我們 傳入的陣列的大小-可以避免函式存取到不是在陣列範圍裡面的東西-void function_call(int ,int); -中括號裡面不需要指定陣列的大小,就算指定,編譯器 也不會理它,所以我們必須另外用一個引數另外用一個引數來告訴函式 我們傳入的陣列大小21傳入陣列到函式/*傳入陣列到函式裡面*/ #include

13、void testfunc(int , int);void main() int a5= 1,2,3,4,5,count;printf(“呼叫前陣列內容:“);for(count =0 ;count void main() int A32= 1, 2,3, 4,5, 6;int B23= 1, 2, 3,4, 5, 6;int C33= 0 ;int i,j,k;for( i = 0; i 3; i+)for( j = 0 ; j 3 ; j+)for( k = 0; k 2; k+)Cij += Aik*Bkj;for( i = 0 ; i 3; i+) for (j = 0 ; j 3; j+)printf(“%2d “, Cij);printf(“n“);9 12 15 19 26 33 29 40 5130

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号