C语言实验lab10.doc_第1页
C语言实验lab10.doc_第2页
C语言实验lab10.doc_第3页
C语言实验lab10.doc_第4页
C语言实验lab10.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C程序设计实验报告学院:国际商学院班级:14电商专业:电子商务姓名:熊靓男日期:15.5.25学号 实验目的l 复习一维数组l 掌握二维数组参数的传递l 掌握排序算法2. 实验内容2.1. 消灭怪物在阳光明媚月色皎洁的一个晚上,J独自开车行驶在路上。突然,天空中出现一个庞大的怪物正要向J袭来,反应迅速的J立马从车厢里拿武器准备消灭怪物,他车厢里有n把离子枪(n100), 每一把枪都有各自的伤害,而怪物也有防御力,要想用枪消灭怪物就必须要枪的伤害大于怪物的防御力,现在J想知道,他车厢里有多少把枪能消灭怪物,也就是说 有多少把枪的伤害大于怪物的防御力。输入:枪的数量、怪物防御力、每把枪的伤害。(请使用数组保存每把枪的伤害)函数原型为:int count(int hurt,int size,int power);实验记录算法描述#include int main()int Size,Power,i;int count(int*,int,int);printf(请输入枪的数量:);scanf(%d,&Size);printf(请输入怪物的防御力:);scanf(%d,&Power);printf(请输入每把枪的伤害:n); int HurtSize;for(i=0;iSize;i+)scanf(%d,&Hurti); /利用循环给数组赋值printf(有%d把枪的伤害大于怪物的防御力!n,count(Hurt,Size,Power);/函数调用时,数组只要写名称,不声明元素个数。return 0;int count(int hurt,int size,int power)int t=0,i;for(i=0;ipower) t+;/计数器t,遇到伤害值大于防御则t+ return t;测试数据(至少3组不同测试数据)A. 5;12;2 5 9 13 15;B7;3;1 4 7 9 14 0 3;C3;9;10 89 1; 运行结果(程序执行结果截图 )1. 输出:2. 输出:3. 输出:2.2. 改写程序改写课本316页程序8.9:将二维数组val的大小改为4行5列,并输出所有元素实验记录算法描述#include #define ROWS 4#define COLS 5void display(int numsROWSCOLS)int rowNum,colNum;for(rowNum=0;rowNumROWS;rowNum+)/两层循环控制,输出二维数组。for(colNum=0;colNumCOLS;colNum+)printf(%4d,numsrowNumcolNum);printf(n);int main()int valROWSCOLS=8,16,9,52,3,15,27,6,14,25,2,10;/二维数组赋初值display(val);/调用函数只写数列名称return 0;测试数据运行结果(程序执行结果截图 )1. 输出:2.3. 成绩查询某科的期中考试成绩已经出来了,作为老师的好助手,你要完成一项任务:编写一个程序,通过这个程序,老师只需输入学号即可查到该名同学的成绩。为了完成这项任务,你需要定义一个5行2列的二维数组(为简单起见,假设学生人数为5),并初始化,每行第一个数为学号,第二个数为成绩。提示:编写一个getScore函数,该函数接收一个二维数组参数和一个学号,返回对应 的成绩。 函数原型为:int getScore( int scoreROWSCOLS, int id );实验记录算法描述#include #define ROWS 5/宏定义行列个数#define COLS 2int getScore( int scoreROWSCOLS, int id )int i,j,t;for(i=0;iROWS;i+) if(scorei0=id) t=scorei1; /找到与学号匹配的成绩并带回return t; int main()int ScoreROWSCOLS,i,j,Id;printf(请输入五位学生的学号和成绩:n);for(i=0;iROWS;i+)/两层循环控制给二维数组赋值for(j=0;jCOLS;j+)scanf(%d,&Scoreij); printf(请输入学号:);scanf(%d,&Id); printf(该生成绩为:%dn,getScore(Score,Id);/函数调用输出相应成绩return 0;测试数据(至少3组不同测试数据) 测试数据如图。运行结果(程序执行结果截图 )1. 输出:2. 输出:3. 输出:2.4. 整理装备消灭完怪兽后,J觉得是时候整理下车厢里的离子枪了,他决定把n把离子枪(n100)按伤害值从小到大排成整齐的一排。J想请你来帮帮忙,请你输入离子枪的数量n,再输入n把枪的伤害值(保存在一维数组中),将它们按伤害值从小到大排序。提示:编写一个sort函数,该函数接收一个一维数组参数和枪的数量,对数组进行排序 函数原型为:void sort( int guns, int num );实验记录算法描述#include void sort(int *, int, int);/注意:本题sort函数这里使用了老师没有提及的快速排序,如果觉得麻烦,可以使用老师讲过的冒泡排序等。(也就是说,用这个可能被老师认为是抄袭)int main()int i,NUM;printf(请输入枪的数量:); scanf(%d,&NUM);int aNUM;printf(请输入每把枪的伤害:); for(i=0;iNUM;i+)scanf(%d,&ai);/循环控制输入伤害值 sort(a,0,NUM-1); printf(从小到大排序:); for(i=0;i= right) return ; /左右标志相等即遍历整个数组,结束查找 int i = left; int j = right; int key = gunsleft; /使用数组最左端为初值来与其他数字比较,比初值小放在数组左端,反之放在右端,有兴趣可以百度,所有排序方法包括冒泡排序均有详解和现成的代码模板。 while(i j) while(i j & key = gunsj) j-; gunsi = gunsj;while(i = gunsi) i+; gunsj = gunsi; gunsi = key; sort(guns, left, i - 1); /递归,减少编程行数 sort(guns, i + 1, right); 测试数据(至少3组不同测试数据) 测试数据如图。运行结果(程序执行结果截图 )1. 输出:2. 输出:3. 输出:2.5. 收银机的秘密(选做)小Q今天去某超市血拼,在漫长的排队等待中,无聊的他对收银机的工作原理产生了兴趣,他发现打出来的小票上,一列是商品单价,一列是购买该商品的数量,还有一列是该商品的总价格,最后一行是购买所有商品的总价格。请你使用一个5行2列的二维数组,每行第一个数为单价,第二个数为数量。模拟收银机:输入5件商品的单价和数量,打印出5件商品的小票。(设价格均为整数)提示:编写一个ticket函数,该函数接收一个二维数组参数,无返回值。 函数原型为:void ticket( int goodsROWSCOLS ); 该函数计算各商品总价及所有商品总价,并输出结果。如下图:实验记录算法描述#include #define Rows 5#define Cols 2void ticket(int goodsCols);int main()int i,j,aRowsCols;printf(请输入五件商品的价格和数量:n);for(i=0;iRows;i+) for(j=0;jCols;j+) scanf(%d,&aij);/两层循环控制给二维数组赋初值 ticket(a);return 0;void ticket(int goodsCols)/二维数组必须声明第二位元素个数,即列数,以指明在哪里需要编译器注意换行。 int i,j,k,q,totalRows,Total=0; printf(nn);for(i=0;i=20;i+)printf(-); /输出例子中的分割线printf(n);for(j=0;jRows;j+)totalj=goodsj0*goodsj1;/计单种商品的总价printf(%5d%5d%5d,goodsj0,goodsj1,totalj);/输出单价,数量和总价printf(n);printf(n);for(k=0;kRows;k+)Total=Total+totalk;/单件总价循环累加得购物总价printf(nTotal:%dn,Total);for(q=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论