C语言实验总答案(4)
}
{
sum=0;
for(i=1;i if(m%i==0) sum=sum+i; } if(m==sum) printf(\} printf(\ 4、36 块砖,36 人搬。男搬4,女搬3,两个小儿抬一砖。要求一次全搬完。问需男、女、小儿各若干?(穷举法)。 #include int x,y,z,n=0; } printf(\序号 男 女 小儿\\n\for(x=0; x<=9; x++) for(y=0; y<=12; y++) { z=36-x-y; if(8*x+6*y+z==72 ) printf(\ } 实验6 数组 【实验目的】 1. 熟练掌握使用数组编程的方法。 2. 熟练掌握排序算法。 3. 熟练掌握字符串的存储和操作方法。 【实验内容】 一、一维数组实验 1. 以下程序功能为:输入一个正整数n,再输入n个整数,将它们排序后由小到大输出。找出并改正以下源程序中错误,得出正确的运行结果。 源程序(有错误的程序) #include { int i,j,num,a[num]; int change,t; printf(\scanf(\printf(\for(i=0;i for(i=num-1,change=1;i>0 && change;i--) { change=0; for(j=0;j<=i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; /*调试时设置断点*/ a[j+1]=t; change=1; } } printf(\ /*调试时设置断点*/ for(i=0;i } 运行结果(改正后程序的运行结果) Enter Number:6 Enter Data:23 77 14 89 6 68 Sorted data:6 14 23 68 77 89 说明: 程序编译时出现的错误信息是指定义数组a时,数组长度必须是常量,把a[num]改为a[50]即可,重新编译连接没有错误,但是输出结果有误。为了找出程序的问题,关闭运行窗口,准备调试程序。 调试程序的步骤: (1)设置断点:设置2个断点,具体位置见源程序的注释。 在当前光标所在行 设置或取消断点 (2)点击调试工具栏上的察数组a中的数据正确。 变量 值显示 (3)继续点击 (Go)按钮,输入2个数据:22 ,11;程序运行到第一个断点处停止。观 调试工具栏,可以进行单步执行,终止调试等操作 (Go)按钮,观察a中数据是否正确,直到程序运行到第二个断点:a[1]中的数据有 问题,为什么呢?本来数组真正存储了2个元素,但是后面交换的时a中第2个元素交换了a中的第3个元素,而a中第3个元素是一个随机值,所以结果不正确了。 (4)找出问题后,点击调试工具栏 (Stop Debugging)按钮停止调试,把程序中的“j<=i”改为“j 后,重新编译并运行程序,得到正确结果。 2. 编程:输入长度为10的整型数组并输出;然后将其逆序存放后再输出。例如: Input 10 number: 0 1 2 3 4 5 6 7 8 9 After reversed: 9 8 7 6 5 4 3 2 1 0 3. 编程:输入n个(1 Input n: 5 Input 5 integer: 8 2 5 1 4 max=8 index=0 min=1 index=3 average=4 4. 编程:青年歌手参加歌曲大奖赛,有10个评委对她(他)进行打分,试编程求这位选手的平均得分并输出(去掉一个最高分和一个最低分)。 5. 编程:用两种方法输出斐波那切数列的前40项(参考例6-4)。 要求: (1)方法1:不使用数组; (2)方法2:使用一维数组。 6. 编程:输入n个(1 Input n: 5 Input 5 number: 8.5 2.3 5.1 1.4 4.9 After sorted: 8.50 5.10 4.90 2.30 1.40 7. 在已经排好序的数组(长度不足10)中插入一个数m(键盘输入)后输出,保持数组的降序排列。 提示:已经排好序的数组(长度不足10)可以直接在程序中赋值,而不必从键盘输入。 二、二维数组实验 1. 以下程序功能为:将下列矩阵中的元素向右移动一列,最后一列移至第一列。找出并改正以下源程序中错误,通过调试得出正确的运行结果。 1 4 6 8 10 12 源程序(有错误的程序) #include int main() { int a[ROW][COL]={1,4,6,8,10,12}; int i,j,temp; for(i=0;i for(int i=0;i return 0; } 运行结果(改正后程序的运行结果) 6 1 4 12 8 10 2. 编程:利用二维数组计算并打印一个n行的杨辉三角。例如: Input n: 6 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 提示:第一列及对角线上的元素都是1,其他元素通过计算得出: 如果用i表示行,j表示列,则第i行j列的元素 pi,j?pi?1,j?1?pi?1,j 3. 编程:通过键盘输入3行4列的二维数组,分别按行和按列输出数组。例如: Input numner: 1 2 3 4 5 6 7 8 9 10 11 0 output by row: 1 2 3 4 5 6 7 8 9 10 11 0 output by col: 1 5 9 2 6 10 3 7 11 4 8 0 4. 编程:输入一个m*n矩阵,求他们的各行元素之和。例如: Input m , n: 2 2 Input 2*2 matrix: 4 5 5 6 sum[0]=9 sum[1]=11 5. 编程:判断一个二维数组是否存在鞍点,若存在,则输出鞍点及其行号和列号;否则输出没有鞍点信息。“鞍点”是指这样的元素:它在本行是最大元素,而在本列是最小的元素。 Input m , n: 2 2 Input 2*2 matrix: 4 5 5 6 i=0, j=1, saddle point: 5 提示:找鞍点需要处理三件事情:(1)找每行中最大值所在的列下标;(2)判断该元素在本列上是否为最小;(3)判断是否找到了鞍点,若找到,输出。 三、字符串实验 1. 以下程序功能为:输入一个字符串,将其逆序输出。找出并改正以下源程序中错误,通过调试得出正确的运行结果。 源代码(有错误的程序) #include
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




