- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序的上机步骤第7章
* 第七章 数 组 问题的提出: 统计某一地区每岁年龄的人数,以及总人数,假定不超过120岁。 用120个变量: int age1, age2, age3, …... age119, age120 age1=0; age2=0; printf(“%d\n”, age1); …… printf(“%d\n”, age2); age120=0; …... scanf(“%d”,x); printf(“%d\n”, age120); while((x0)(x121)) { if(x==1) age1 += 1; else if(x==2) age2 += 1; …… else if(x==120) age120 += 1; scanf(“%d”,x); } 结构庞大, 机械重复, 于是引入数组 §7.1 一维数组的定义和引用 一、一维数组的定义 数组(整体) int a[10]; 数组名 数组元素个数 数组类型 二、引用 a[0], a[1], a[2], …... a[9] 下标 int i=3, j=2, a[10]; 引用 a[i], a[i+2], a[i+j], …… main() { int a[120], x, i, n=0; for(i=0; i120; i++) a[i]=0; scanf(“%d”,x); while( (x0) (x121) ){ a[x-1] = a[x-1] + 1; n++; scanf(“%d”,x); } printf(“Total people =%d\n”, n); for(i=0; i120; i++) printf(“%d years old=%d\n”, i+1, a[i]); } 问题:统计某一地区每岁年龄的人数,以及总人数,假定不超过120岁。 a[0], a[1], a[2], …... a[119] 1 岁人数 2 岁人数 3 岁人数 120 岁人数 使用一个数组元素, 就象使用一个简单变量, 包括:输入、输出、赋值等 同理:可定义其他类型数组 int a[10]; float b[5]; char c[20]; a[0], a[1], …... a[9] b[0], b[1], …... b[4] c[0], c[1], …... c[19] 定义 引用 三、一维数组初始化:在定义数组时赋初值 int a[3]={1,3,5}; float b[2]={3.14,5.18}; char c[5]={‘a’, ‘b’, ‘c’, ‘d’, ‘e’}; 另外:亦可 int a[]={1,2,3,4,5}; 编译系统自动确定元素个数 int b[10]={1,2}; 前两个元素的赋值,后八个为0 四、数组在内存中的存放 在内存中占据一片连续的存储区 例: int a[20]; 一维数组: 内存中连续存放、类型相同的一组变量。 a[0] a[1] a[2] a[17] a[18] a[19] ….. ….. 内存 五、一维数组应用 [例7.1] 程序使a[0]到a[9]的值为0-9,然后按逆序输出。 运行结果: 9876543210 main() { int i,a[10]; for (i=0; i=9; i++) a[i]=i; for(i=9; i=0; i--) printf(“%d ”, a[i]); } 五、一维数组应用 [例7.2] 用数组来处理求Fibonacci数列问题,求前20个数 main() { int i; static int f[20]={1,1}; for (i=2; i20; i++) f[i]=f[i-2]+f[i-1]; /* 从 f[2] 求到 f[19] */ for (i=0; i20; i++) if (i%5==0) printf(“\n”); /* 控制一行输出 5 个数 */ printf(“%12d ”, f[i]);
原创力文档


文档评论(0)