网站大量收购闲置独家精品文档,联系QQ:2885784924

阵列摘要.PDF

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
阵列摘要

*陣列(array) :相同型態資料的集合(可看成一常數指標constant pointer) 系統會給一足夠大的記憶體區塊,來儲存使用者宣告的陣列,並把陣列的名稱設 成記憶體區塊的起始位址,也就是說:陣列名稱代表的是,陣列的起始位址。而 且此位址是經由系統指定與維護管理,不能被更改 ! 陣列名稱就是系統分配給我們的陣列起始位址! 陣列宣告方式: 資料型態 陣列名稱[陣列元素個數] ; Ex. float fa[2]; (變數) :表示該變數所在的位址 short int ia[4]; // sizeof(short int)=2 *(位址) :存於此位址的值或內容 fa[0] fa[1] ia[0] ia[1] ia[2] ia[3] int ary[5]; // 宣告含有五個元素的陣列。 int aryvalue[3] = {5, 4, 3}; // 宣告含有三個元素的陣列,並給定初值。 *設定初值:由陣列的第一個元素(index 0)開始填值,未給者補零。(row major) 初值多給時會導致出錯。 int ia[4]={1,3,5}; = 相當於 ia[0]=1; ia[1]=3, ia[2]=5, ia[3]=0 int aryMore[4] = {0, 1, 2, 3, 4}; // 陣列長度只有4 ,但給了5 個值,可能會出錯! int m[2][3]={ 1, 2, 3, 4, 5, 6}; int ma[2][3]={ 1, 2, 3, 4 }; int mb[2][3]={ { 1, 2, 3 }, { 4, 5, 6 } }; int mc[2][3]= { { 1, 2 }, { 4 } }; *宣告時可不給陣列大小,compiler 會自動計算 。 int ib[]={2,4,6,8}; = int ib[4]={2,4,6,8}; *計算陣列的個數: ex. sizeof(ib)/sizeof(ib[0]); = 4, 陣列ib 的元素個數。 *陣列資料的複製(copy) : ex. int iax[4]={5,4,3,8}; int iay[4]; 1) iay=iax; // Whats wrong ? 2) for ( k=0; k4; k++) iay[k]=iax[k]; // copy array’s elements one by one *利用陣列來實現多位數的乘法: int fac[99]; // 理論上可存99 位數的長整數。 fac[0] = 1; // 從 fac[0] 開始依序儲存個、十、百、千、萬、...位,依此類推的值。 想像當要將fac 這個長整數乘以某數p 時,理論上每一位數都要乘上p ,只是乘 完後有可能會出現需要進位的情形,所以我們要將進位的部分加到下一位,並將 進位後的剩餘結果填入目前的位數中,由個位數開始(此時之前的進位可當成0) 對每一個位數重複這個運算。 例如: int value = fac[k] * p + c; // 每一位都要乘以 p ,並加上前一位的進位值 c ! c = value / 10; // 取出進位數存於 c ,如上,準備要將其加到下一位。 fac[k] = value % 10; // 餘數即為該位數最後的結果。 階乘的定義: n! = (1)*(2)*...*(n-2)*(n-1)*(n) 。 你能根據這個定義與上述的討論,算出 15 以上的階乘結果嗎?

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档