




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、一维数组实验实验6数组2.编程:输入长度为10的整型数组并输出;然后将其逆序存放后再输出。例如:#in cludevoid main()int i, j, a10, t;prin tf(I nput 10 number:);for(i=0; i10; i+)/*scan f(%d, & ai);printf(origin data:);for(i=0; i10; i+)/*prin tf(%d , ai);prin tf(n ”);for(i=0,j=9; ij ; i+,j-)/*t=ai; ai=aj; aj= t;prin tf(After reversed: );/*for(i=0;
2、 i10; i+)prin tf(%d , ai);prin tf(n ”);读入数据*/输出原始数据*/逆序存放*/输出逆序存放后的数据*/3.编程:输入n个(1*=10 )正整数并保存到数组中,求出最大值、最小值、平均值,以及最大值、最小 值在数组中的下标分别是多少。例如:#in elude void mai n()int i, n , max, min, a10, sum; float average;printf(Input n (1n=10):);scanf(%d, &n);输入数据并求累加和*/if(1 n & n=10) printf(Input %d integer:, n);
3、/*for(i=0, sum=0; in; i+)scan f(%d, & ai); sum+=ai; prin tf(max=%-5d in dex=%dn, amax, max); printf(min=%-5d in dex=%dn, amin, min); prin tf(average=%.2fn, average);average=(float)sum/n;/*for(i=0, max=0, min=0; i amax) max= i;if(ai ami n)min= i;求出平均值*/求最大、最小值的下标*/elseprintf(数据超出范围);4. 编程:青年歌手参加歌曲大奖赛
4、,有10个评委对她(他)进行打分,试编程求这位选手的平均得分并输出(去掉一个最高分和一个最低分)。#in clude void mai n()int i, max, min;float a10, ave;printf(请输入10个评委的打分:);for(i=0, ave=0; i10; i+)/*输入分数并求累加和 */scanf(%f, &ai);ave+=ai;for(i=0, max=0 , min=0; iamax)max=i;if(aiami n)min=i;ave=ave-amax-ami n;ave=ave/8;prin tf(该选手的评委打分是:);for(i=0; i10;
5、i+)prin tf(%.2f , ai);prin tf(n ”);ami n.printf(去掉最高分%.2f,去掉最低分%.2f,该选手的平均得分是%.2fn, amax,ave);5. 编程:用两种方法输出斐波那切数列的前40项(参考例6-4)。要求:(1)方法1:不使用数组;#in elude void mai n()int f1=1, f2=1, f3, i;prin tf(%12d%12d, f1, f2);for(i=3; i=40; i+)f3=f1+f2;prin tf(%12d, f3);if(i%5=0)prin tf(n);f1= f2;f2= f3;(2)方法2 :
6、使用一维数组。#in elude void mai n()int i;int fib4O;fibO=fib1=1;for(i=2; i40; i+)/*计算其余的 38 个数 */fibi= fibi-1 + fibi-2;for(i=0; i40; i+)prin tf(%12d,fibi);if(i+1)%5=0)prin tf(n);6. 编程:输入n个(1*=10 ) float型的数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后 输出。例如:#in elude void mai n()int i, j, n;float a10, t;prin tf(I nput n:);sc
7、an f(%d, &n);if(n1 & n=10)prin tf(I nput %d nu mber:, n);for(i=0;i n ;i+)scan f(%f, &ai);printf(Before sorted:);/*输出排序前的数据 */for(i=0; in; i+)prin tf(%.2f , ai);prin tf(n);for(i=0; in-1; i+)/*冒泡排序 */for(j=0; j n-i-1; j+)if( aj aj+1)t=aj;aj=aj+1;aj+1=t;prin tf(After sorted:);/*输出排序结果*/for(i=0; in; i+)
8、prin tf(%.2f , ai);prin tf(n);elseprintf(数据超出范围);7. 在上题基础上(输入n个float型的数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后输出)完成:在已经排好序的数组(长度不足10)中插入一个数 m (键盘输入)后输出,保持数组的降序排列。程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数, 依次后移一个位置。#in elude void mai n()int i, j, n, p;float a10, t, m;printf(Input n:);scan f(%d, &n);if(n1 &
9、n=10)prin tf(I nput %d nu mber:, n);for(i=0; in; i+)scanf(%f, &ai);prin tf(Before sorted: );/*输出排序前的数据 */for(i=0; in; i+)prin tf(%.2f , ai);prin tf(n);for(i=0; in-1; i+)/*冒泡排序 */for(j=0; j n-i-1; j+)if( aj aj+1)t=aj;aj=aj+1;aj+1=t;输出排序结果*/prin tf(After sorted:);/*for(i=0; in; i+)prin tf(%.2f, ai); p
10、rin tf(n);prin tf(请输入要插入的数据 m:);sca nf(%f, & m);/*找到插入位置*/if(m a n-1)/*p = n;elsefor(i=0; i ai)p=i; break;for(i=n; i=p+1; i-)/*ai=ai-1;如果m比最后一个元素小,则直接插入到最后的位置*/否则,插入到中间的某个位置*/将插入位置之后的元素后移*/*插入*/ ap=m;printf( 插入%.2f后:,m);/*输出插入后结果*/for(i=0; in+1; i+)prin tf(%.2f , ai);prin tf(n);elseprintf( 数据超出范围);、
11、二维数组实验1. 以下程序功能为:将下列矩阵中的元素向右移动一列,最后一列移至第一列。找出并改正以下源程序中 错误,通过调试得出正确的运行结果。14681012源程序(有错误的程序)#i nclude #defi ne ROW 2#defi ne COL 3int mai n()int aROWCOL=1,4,6,8,10,12;int i,j,temp;for(i=0;i=0;j-)aij=aij+1;ai0=temp;/*调试时设置断点*/改为aij+1=aij;/*调试时设置断点*/for(int i=0;iROW;i+)/去掉 intfor(j=0;jCOL;j+)prin tf(%6
12、d,aij);prin tf(n);return 0;运行结果(改正后程序的运行结果)2. 编程:利用二维数组计算并打印一个n行的杨辉三角。例如:提示:第一列及对角线上的元素都是1,其他元素通过计算得出:如果用i表示行,j表示列,则第i行j列的元素口=pjj + Pu,j#in elude void mai n()int a1010=0;/设最多 10 层int i, j, n;printf(请输入杨辉三角形的层数:);scan f(%d, &n);if(n 10)printf(”层数超出范围);return;给第0列和主对角线上的元素赋值1计算其他位置元素的值for(i=0;i n;i+)/
13、ai0=1;aii=1;for(i=2;i n; i+)/for(j=1;ji;j+) aij=ai-1j-1+ai-1j;for(i=0;i n;i+)/输出for(j=0;j=i;j+)prin tf(%4d,aij);prin tf(n);3. 编程:通过键盘输入3行4列的二维数组,分别按行和按列输出数组。例如: prin tf(n);#in elude void mai n()int a34,i,j;printf(”请输入3 X 4整数矩阵:n);for(i=0; i3; i+)for(j=0; j4; j+)scan f(%d, & aij);printf(按行输出:);for(i=
14、0; i3; i+)for(j=0; j4; j+)prin tf(%d ,aij);printf(”按列输出:”);for(i=0; i4; i+)for(j=0; j3; j+)prin tf(%d ”,aji);prin tf(n ”);4. 编程:输入一个m*n矩阵,求他们的各行元素之和。例如:提示:设计一个一维数组int s10,分别保存各行元素之和。#i nclude void mai n()int a1010, s10=0; /设定矩阵最大为 10 x 10int m, n, i, j;printf(请输入矩阵的行数和列数:”);sca nf(%d%d, &m, &n);if(m
15、10 | n10)printf( 行或列(110)值超出范围);return;printf(请输入 %d*%d 矩阵:n,m,n);for(i=0; im; i+)for(j=0; j n; j+)scan f(%d, &aij);/求各行之和并输出for(i=0; im; i+)for(j=0; j n; j+)si+=aij;prin tf(su n%d= %d n, i, si);5. 编程:判断一个二维数组是否存在鞍点,若存在,则输出鞍点及其行号和列号;否则输出没有鞍点信息。 “鞍点”是指这样的元素:它在本行是最大元素,而在本列是最小的元素。提示:找鞍点需要处理三件事情:(1)找每行中
16、最大值所在的列下标;(2)判断该元素在本列上是否为最小;(3)判断是否找到了鞍点,若找到,输出。#i nclude void mai n()int a1010; /int m, n, i, j, col, flag=0;设定矩阵最大为10 x 10printf(”请输入矩阵的行数和列数:”);sca nf(%d%d, &m, &n);if(m10 | n10)printf(行或列(110)值超出范围);return;/退出程序printf(”请输入 %d*%d 矩阵:n,m,n);for(i=0; im; i+)for(j=0; j n; j+)scan f(%d, &aij);for(i=0
17、; im; i+) col=0;for(j=1; j n; j+) if(aicolaij) col=j;/找出第i行中的最大值所在列下标colfor(j=0; jajcol) break;if(j=m)/判断该元素在本列上是否为最小有鞍点flag=1;/prin tf(i=%d, j=%d, saddle poi nt:%dn,i,col,aicol);if(flag=O)prin tf(No saddle poi nt!n);三、字符串实验1. 以下程序功能为:输入一个字符串,将其逆序输出。找出并改正以下源程序中错误,通过调试得出正确 的运行结果。源代码(有错误的程序)#i nclude
18、#in clude void mai n()int i,j;char s80,result80;prin tf(E nter a stri ng:n);gets(s);for(i=strle n( s)_1,j=O;i=O;i_,j+)resultj=si;resultj=0;必须给字符串加上串结束标志prin tf(This is reverse stri ng:n);puts(result);运行结果(改正后的程序)2. 编程:任意输一个字符串保存在一维字符数组中,求其长度(不用strlen函数)。例如:提示:字符串的有效长度就是有效字符的个数,即数组中第一个0前面的字符个数。#i ncl
19、ude void mai n()int i, le n=0;char s80;printf(请输入字符串,以回车键结束:”);gets(s);for(i=0; si!=0; i+)len+;printf( 字符串 %s 的长度为:%dn,s, len);3. 编程:任意输入两个字符串分别保存在一维字符数组中,把第二个字符串连接到第一个字符串末尾(不 用strcat函数)。例如:#in elude void mai n()int i,j;char s180, s280;printf(请输入字符串1以回车键结束:n);gets(s1);printf(请输入字符串2以回车键结束:n);gets(s2
20、);for(i=0; s1i!=0: i+) ;/*定位第一个字符串的结束标志*/for(j=0; s2j & i80; i+, j+ )/*将 s2 接到 s1 后 */s1i=s2j;s1i=0:printf(两个串连接后:sn,s1);4. 编程:从键盘读入两个字符串分别保存在一维字符数中,比较两个字符串大小 (不用strcmp函数),输出较大的字符串。#i nclude void mai n()int i;char a80, b80;printf(请输入字符串1以回车键结束:n);gets(a);printf(请输入字符串2以回车键结束:n);gets(b);/逐个比较直到两个字符不同
21、或其中一个字符串结束for(i=0; ai & bi ; i+)if(ai!=bi)break;if (aibi)printf(第一个字符串 %s 大! n, a);else if (ai=bi)printf(两字符串相同!n ”);elseprintf(第二个字符串%s 大! n, b);5. 编程:任意输入一个字符串保存在一维字符数组中,判断里面数字字符的个数。例如:#in elude void mai n()int i, n=0;char s80;printf(”请输入一个字符串以回车键结束:n);gets(s);for(i=0 ; si; i+)if(si=0 & si=9)n+;pr
22、in tf(字符串中包含的数字个数为:dn, n);6. 编程:从一个字符串中删除从某个特定字符开始的所有字符。例如原字符串为abedefg,特定字符为d,删除后的字符串为abc。#i nclude void mai n()int i, flag=0;char c, s80;printf(请输入一个字符串以回车键结束:n);gets(s);prin tf(请输入特定字符:);c=getchar();for(i=0 ; si; i+)if(si=c)si=0;flag=1;break;if(flag=0)prin tf(”输入字符中没有特定字符! n);elseputs(s);7. 编程:编写程
23、序,从一个输入的字符串中抽取一部分(从第 n个字符开始,抽取m个字符)构成一个新的字符串,并输出。要求: n和m都由用户输入。#i nclude #in clude void mai n()un sig ned int i, j, m, n;char s180, s280;printf(请输入一个字符串以回车键结束:n);gets(s1);printf(请输入子串的起始位置和长度:);sca nf(%d%d, &n, & m);if( n0 & n0 & n+m = strle n( s1)+1 )for(i=n-1,j=0; s1i & i n+m-1 ; i+, j+)s2j=s1i;s2
24、j=0;puts(s2);elseprintf(长度超出范围!n);elseprintf(起始位置超出范围!n);8. 编程:利用字符串库函数puts, gets, strcat, strcmp, strcpy, strlen完成下述操作:读入三个字符串 str1,str2,str3输出这三个字符串分别求出这三个字符串的长度;比较strl和str2的大小;将str2连接到strl之后,并输出连接后的strl;复制str3到strl,并输出复制操作后的strl ;#i nclude #in clude void mai n()char str180, str280, str380;printf(
25、”请输入字符串str1以回车键结束:n);gets(str1);printf(”请输入字符串str2以回车键结束:n);gets(str2);printf(”请输入字符串str3以回车键结束:n);gets(str3);printf(”三个字符串分别是:n);prin tf(str1:%sn, str1);prin tf(str2:%sn, str2);prin tf(str3:%sn, str3);printf(”三个字符串的长度分别是:n);prin tf(str1:%dn, strle n(str1);prin tf(str2:%dn, strle n(str2);prin tf(str3:%dn, strle n(str3);if(str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省松滋市2026届中考语文最后冲刺模拟试卷含解析
- 无菌操作室设备管理制度
- 师德培训课件图片
- 2025年全国禁毒知识竞赛培训试题库及答案
- 手术室内消毒及无菌护理的落实
- 注射实施中的无菌操作安全护理
- 短视频公司合规管理制度
- 历年司法考试试题及答案
- 新疆伊犁州重点达标名校2026届中考五模语文试题含解析
- 二零二五年度会展租赁服务与品牌推广合同
- 医疗健康行业数字营销战略解析
- 生产经营单位事故隐患内部报告奖励制度
- 民政局笔试题及答案
- 青少年体态管理课件
- 网络安全维护与用户免责声明
- 风湿免疫病患者结核病诊治及预防实践指南(2025版)解读课件
- 新苏教版三上《认识长方形和正方形》教学设计
- 山东省枣庄市峄城区2024-2025学年七年级上学期期末考试数学试题(原卷版+解析版)
- 脑积水患者治疗与护理
- 项目管理体系运行
- 物业工程前期介入方案
评论
0/150
提交评论