c语言实验六
更新时间:2023-09-23 08:14:01 阅读量: 人文社科 文档下载
常熟理工学院
《C语言程序设计》实验指导与报告书
______学年 第____ 学期
专 业: ___________________________________________ 学 号: ___________________________________________ 姓 名: ___________________________________________ 实验地点:___________________________________________ 指导教师:___________________________________________
计算机科学与工程学院
2014
1
实验8 数组程序设计(2)
8.1 实验目的
1.掌握字符数组的使用方法。
2.掌握二维数组的定义及初始化方法。
3.掌握用循环语句对二维数组进行处理的方法。
4.熟悉对数组元素进行处理的常规算法(如排序、插入、删除及查找等)。
8.2 示例程序
【实验8.1】输入一个字符串,判断是否是回文串。所谓回文串,是指这个字符串正读和反读是一样的,如“abcba”和“123321”都是回文。
程序代码:
#include
char s[10]; int i,j,n;
printf(\
gets(s); n=strlen(s); for(i=0,j=n-1;i if(s[i]!=s[j]) break; if(i printf(\else printf(\return 0; } /* 判断对应的字符是否相等 */ /* 对应的字符不相等时跳出循环 */ /* 若是从循环体中跳出来的则不是回文 */ /* 输入字符串 */ /* 求出字符串的长度 */ /* 定义一个字符数组 */ 说明: 1.gets()函数一次只能读入一个字符串。 2.使用strlen()函数求出字符串的长度,将字符串的对应字符进行比较,遇到不相等时跳出循环。 3.循环外,若i 互换前 互换后 ?326???279? ????158??程序代码: ?3?21??275? ????698??2 #include void print(int a[][N]) { int i,j; for(i=0; i printf(\printf(\} } int main() { int i,j,t,a[N][N]={3,2,6,-2,7,9,1,5,8}; printf(\print(a); printf(\for(i=0; i { t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } printf(\print(a); return 0; } /* 调用输出函数输出交换后的数组 */ /* 进行行列互换 */ for (j=i+1; j /* 调用输出函数输出交换前的数组 */ /* 输出一行后换行 */ /* 输出二维数组函数 */ 说明: 1.print()函数的作用是输出一个二维数组。 2.将二维数组中的行列元素互换,即a[0][1]与a[1][0]交换,a[0][2]与a[2][0]交换,…可以用循环来实现。 8.3 阅读程序 【实验8.3】以下程序的功能是:在一个递增的字母或数字串(不超过8个)中插入一个字母或数字。 程序代码: #include char string[10]={'\\0'},ch; int i=0,j,len; printf(\gets(string); printf(\ch=getchar(); 3 /* */ while(string[i]!='\\0'&&ch>string[i]) i++; len=strlen(string); if(i<=len-1) /* */ for(j=len-1;j>=i;j--) string[j+1]=string[j]; string[i]=ch; puts(string); return 0; } /* */ printf(\ /* */ 说明: 1.用gets()函数输入一个递增的字母或数字串,用getchar()函数输入一个字母或数字。 2.使用循环在字母或数字串中依次查找要插入的字母或数字所在的位置,找到位置后结束循环。 3.将找到插入位置以后的字符依次后移一个位置,插入字母或数字。 8.4 完善程序 【实验8.4】下面程序的功能是分别求二维数组a[3][4]的各行、各列元素之和。请完善程序。 程序代码: #include int i,j,a[4][5]; printf(\for(i=0; i<3; i++) for(j=0; j<4; j++) scanf(\ printf(\for(i=0; i<3; i++) { for(j=0; j<4; j++) printf(\________; } for(i=0; i<3; i++) a[i][4]=0; for(j=0; j<5; j++) ________; for(i=0; i<3; i++) for(j=0; j<4; j++) { a[i][4]+=a[i][j]; ________; a[3][4]+=a[i][j]; 4 /* 计算各列之和 */ /* 计算各行之和 */ /* 计算全部元素之和 */ /* 存放列之和的元素清0 */ /* 存放行之和的元素清0 */ /* 换行 */ /* 为每个元素赋值 */ } printf(\for(i=0;i<4; i++) { for(j=0; ________; j++) printf(\printf(\} return 0; } 说明: 1.程序采用双循环给数组赋值。 2.求各行与各列元素之和要采用累加的方式,首先对存放和的各元素进行清0。 8.5 改错程序 【实验9.5】输入一个正整数n(1?n?6)和n阶方阵a中的元素,如果找到a的鞍点(鞍点的元素值在该行上最大,在该列上最小)就输出它的下标;否则,输出“No”(设a最多有一个鞍点)。请改正程序中的错误,并调试。 注意:改错时不允许增加及删除语句,只允许修改或移动语句的位置。 【含有错误的程序代码】 #include void saddle_point(int a[N][]) { int flag=0,i,j,max,min; for(i=0;i max=0; for(j=0;j if(a[i][j] max=j; min=0; /* 找第max列中最小值所在下标min */ for(j=0;j if(a[j][max] if(flag==0) else printf(\ } int main() { int i,j,a[N][N]; printf(\ 5 /* 根据flag值输出结果 */ printf(\ flag=1;break;} /*当flag=1,表示找到了鞍点,当flag=0,表示未找到鞍点 */ /* 找第i行中最大值所在下标max */ for(i=0;i for(j=0;j scanf(\ for(i=0;i for(j=0;j printf(\printf(\saddle_point(a); return 0; } /* 调用函数求鞍点 */ /* 输入一个N阶方阵,存储在数组a中 */ 8.6 自己练习 1.编写程序,输入一个以回车符结束的字符串(少于80个字符),将该字符串按逆序输出。 2.编写程序,输入一个以回车符结束的字符串(少于80个字符),再输入一个字符,统计并输出该字符在字符串中出现的次数,然后再输出该字符串。 3.编写程序,输入一个正整数n(1?n?6),再输入n阶方阵a,计算该方阵除副对角线、最后一列和最后一行以外的所有元素之和(副对角线为从方阵的右上角至左下角的连线)。 6
正在阅读:
c语言实验六09-23
初中体育说课稿106-07
苏教版四年级下册数学三角形练习题05-24
我变了作文300字07-14
什么是钢化玻璃(和普通玻璃不同之处)05-05
那次数学考试作文550字06-19
爱打篮球的我作文800字07-16
2016年度施工员考试试卷及答案07-03
塔式起重机使用安全技术交底06-15
不坑爹 《疯狂挂机》大神速成三大秘笈05-30
- 粮油储藏基础知识
- 论文范文(包括统一封面和内容的格式)
- 经典解题方法
- 综合部后勤办公用品管理办法+领用表
- 学生宿舍突发事件应急预案
- 16秋浙大《生理学及病理生理学》在线作业
- 四分比丘尼戒本(诵戒专用)
- 浙江财经大学高财题库第一章习题
- 九大员岗位职责(项目经理、技术负责人、施工员、安全员、质检员、资料员、材料员、造价员、机管员)
- 旅游财务管理习题(学生版)
- 德阳外国语高二秋期入学考试题
- 投资学 精要版 第九版 第11章 期权市场
- 控制性详细规划城市设计认识
- bl03海运提单3国际贸易答案
- 2010-2011学年湖北省武汉市武珞路中学七年级(上)期中数学试卷
- VB程序填空改错设计题库全
- 教师心理健康案例分析 - 年轻班主任的心理困惑
- 民间借贷司法解释溯及力是否适用?
- 三联书店推荐的100本好书
- 《化工原理》(第三版)复习思考题及解答
- 语言
- 实验
- 科学探究表现性评价的性别差异研究
- 幼儿园指南测试题
- 汽车金融:特定行业的风险管理的案例
- 无创呼吸机漏气监测装置和方法
- 2009年湖南省长沙市中考化学试卷
- 大学日语基础课文翻译
- 文献检索实习大报告要求2011 第二期
- 2010至2011学年度第一学期总结
- 将进酒
- 2016江苏省第五届“万人学法”竞赛网上答题及答案
- 挤出吹塑中空成型机的设计
- SM公司供应链管理实施方案
- 新建海南西环铁路XHZQ-2标安全管理办法
- SAS系统和数据分析显示管理系统资料
- 实验4 类中数据的共享与保护
- 基本概况
- 2016最新电力安规判断
- 201209学期民航概论作业2
- 高考地理第二轮专题复习 高考题型冲刺练 选择题 统计表格判读型
- 03871市场调查与市场分析 复习资料3 - 图文