C语言期末实验之数组.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级语言程序设计 实验报告 实验编号 1505B000104 实验名称 数组 实验地点 软件实验室(二) 班 级 18 计嵌 2 学 号 20180505216 姓 名 王尊 一、实验目的 使用数组实现顺序结构的存储与访问; 实现二维数组的遍历; 设计数组元素排序算法。 二、实验原理 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形 式组织起来。这些按序排列的同类数据元素的集合称为数组。 在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素, 这些数组元素可以是基本数据类型或是构造类型。 数组又可分为数值数组、 字符 数组、指针数组、结构数组等类别。 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的 数据类型都是相同的,且数组名不能与其它变量名相同。 C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入、输出、合 并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程的负 担。用于输入输出的字符串函数, 在使用前应包含头文件 stdio.h ; 使用其它 字符串函数则应包含头文件 string.h 。 三、实验内容 问题 1 用一个二维方阵(最小为 3X3,最大为 9X9)表示一片海域。方阵中的元素只由 0和 1 组成。 1表示海岸线。计算水面面积(即:不在 1 围起来的区域中 0的个 数)。如下图所示 6X6 方阵表示的水面面积为 14: 0 0 0 1 0 0 1 1 0 1 0 0 上述方阵表示的海域满足下面两个要求: ( 1)小岛只有一个。 ( 2)用 1 表示的海岸线是封闭的,但有可能是凸的,也有可能是凹的。 提示: 对于方阵中的任意一个元素 0,如果其位于同一行上的两个 1 之间,并且位于同 一列上的两个 1 之间,则该元素肯定在 1 围起来的区域中。 否则就不在 1围起来 的区域中,即属于水面。 } } #include stdio.h int main(i) { int a[10][10], i, j, n, d = 0, p = 0, x, y; scanf(%d,n); for(i = 0; i = n-1; i++) for(j = 0; j = n-1; j++) scanf(%d,a[i][j]); for(i = 0; i = n-1; i++) for(j = 0; j = n-1; j++) { if(a[i][j] == 1) continue; p=0; for(x = i; x = 0; x--){ y = j; if(a[x][y] == 1){ p++; break;}} for(x = i; x = n-1; x++){ y=j; if(a[x][y] == 1){ p++; break;}} for(y = j; y = 0; y--){ x=i; if(a[x][y]==1){ p++; break;}} for(y = j; y = n-1; y++){ x = i; if(a[x][y] == 1){ p++; break;}} if(p 4) d++; } printf(%d\n,d); return 0; 问题 2 求二维整型数组的“最小点”。二维数组的“最小点”定义为:某个数是所在行 的最小值, 并且是所在列的最小值。 注意:某行或某列上可能有多个 “最小点” #include stdio.h int main(int argc, char* argv[]) { int m,n,p,q,t,b=0,x; int i,j,k,a[10][10]; scanf(%d %d,m,n); for(i=0;im;i++) for(j=0;jn;j++) scanf(%d,a[i][j]); for(i=0;im;i++) { t=1; p=i; q=0; for(j=0;jn;j++) if(a[p][q]a[i][j]) { p=i;q=j;} for(k=0;km;k++) if(a[p][q]a[k][q]) {t=0;break;} if(t) { b++; printf(%d %d %d\n,a[p][q],p+1,q+1); } t=1;x=q; for(j=0;jn;j++) if((a[p][q]==a[i][j])q!=j) q=j; for(k=0;km;k++) if(a[p][q]a[k][q]) {t=0;break;} if(tx!=q) { b++; printf(%d %d %d\n,a[p][q],p+1,q+1); } } if(b==0) printf(No answer); return 0; } 问题 3 对某班学生成绩排序。 从键盘依次输入某班学生的姓名和成绩 (

文档评论(0)

guoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档