C语言教程课件ch07-3习题.ppt

上传人:牧羊曲112 文档编号:6503880 上传时间:2023-11-07 格式:PPT 页数:27 大小:762KB
返回 下载 相关 举报
C语言教程课件ch07-3习题.ppt_第1页
第1页 / 共27页
C语言教程课件ch07-3习题.ppt_第2页
第2页 / 共27页
C语言教程课件ch07-3习题.ppt_第3页
第3页 / 共27页
C语言教程课件ch07-3习题.ppt_第4页
第4页 / 共27页
C语言教程课件ch07-3习题.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《C语言教程课件ch07-3习题.ppt》由会员分享,可在线阅读,更多相关《C语言教程课件ch07-3习题.ppt(27页珍藏版)》请在三一办公上搜索。

1、例1从10个整数中把最小的数找出来,并与最前面的数对调,指出最小的数原来的位置。(最小值唯一),1.用数组a存放10个数据。int a10;2.用j记录最小值的位置。3.交换a0与aj的值。,j=0;for(i=1;i=9;i+)if(aiaj)j=i;,12,-14,37,2,76,231,-36,65,-2,-31,j=0,j=1,j=6,j=1,j=1,j=1,j=1,j=6,j=6,j=6,void main()int i,j,a10,k;for(i=0;i=9;i+)scanf(%d,例2已知数组a中有7个互不相等的元素,数组b中有 5 个互不相等的元素,而数组c中包含那些在a中但不

2、在b中的元素,编程产生数组c。,12,-1,3,2,77,31,-6,2,-14,77,-1,76,a,b,c,12,3,-6,31,void main()int i,j,k=0,a7,b5,c7;for(i=0;i=5)ck=ai;k+;for(i=0;ik;i+)printf(%5d,ci);printf(n);,例3输入n个数到数组中(n最多为100),选出所有大于n个数的平均值的那些数。,1.float x100;2.输入n个数据并求这n个数据的累加和。3.求n个数据的平均值。4.选出所有大于平均值的那些数。,void main()float x100,sum=0,ave;int i,

3、n;scanf(%d,例4 打印以下方阵:1283 10283 10 183 10123 10128 101283,1,2,8,3,10,1,2,8,3,10,1,2,8,3,10,1,2,8,3,10,1,2,8,3,10,1,2,8,3,for(j=1;j5;j+)xj-1=xj;,y=x0;,x4=y;,void main()int i,j,y;int x5=1,2,8,3,10;for(i=0;i5;i+)printf(%5d,xi);printf(n);for(i=1;i=4;i+)y=x0;for(j=1;j5;j+)xj-1=xj;x4=y;for(j=0;j5;j+)print

4、f(%5d,x j);printf(n);,例5将n(n=20)个整数按逆序重放在数组中。,算法1:设n=7,3,45,2,6,17,66,50,y,3,50,3,45,66,45,2,17,2,y=xi;xi=xn-i-1;xn-i-1=y;,#define N 20 void main()int xN,y,n,i;for(i=0;iN;i+)scanf(%d,例6:用random函数产生10个20,60上的整数,按从小到大排序后输出。,随机函数 random的用法:1.格式:random(x)2.说明:(1)x为整型常量、整型变量或整型表达式。(2)该函数包含在头文件stdlib.h中。(

5、3)该函数产生0,x)区间上的整数。,产生a,b区间上任意整数的方法:random(b-a+1)+a,0,b-a+1),a,b+1),a,b,25,34,21,49,30,23,41,37,30,28,34,25,34,21,21,25,21,25,49,49,30,30,23,23,41,41,37,37,30,30,28,28,第一次比较:用a0与它后面的a1a9比较,将小的数据 放在a0中。,第一次的比较结果:最小数在a0中。,第二次比较:用a1与它后面的a2a9比较,将小的数 据放在a1中。,28,34,25,25,34,49,49,30,30,23,23,25,41,41,37,37

6、,30,30,28,第二次的比较结果:次最小数在a1中。,49,34,第三次比较:用a2与它后面的a3a9比较,将小的数据 放在a2中。,49,30,30,34,25,25,30,41,41,37,37,30,30,28,28,第三次的比较结果:第3小的数在a2中。,依次类推经过九次比较可使数组a升序。,算法1:顺序排序,#include stdlib.hvoid main()int i,j,k,a10;for(i=0;iaj)k=ai;ai=aj;aj=k;for(i=0;i=9;i+)printf(%5d,ai);printf(n);,29 57 42 30 21 35 27 46 52

7、39,第一次比较:k=0,比较ak与它后面所有的数aj(j=1,.,9),若ak大于aj,则k=j,k,j,j,j,j,k,j,j,j,j,j,第一次比较结果:k为最小值的下标,交换a0与ak 使a0中存放最小值。,21,29,第二次比较:k=1,比较ak与它后面所有的数aj(j=2,.,9),若ak大于aj,则k=j,k,j,k,j,k,j,k,j,j,k,j,j,j,27,57,第二次比较结果:k为剩余数中最小值的下标,交换 a1与ak,使a1中存放剩余数 中的最小值。,依次类推经过九次比较可使数组a升序。,算法2:选择排序,#include main()int i,j,k,m,a10;f

8、or(i=0;iaj)k=j;m=ai;ai=ak;ak=m;for(i=0;i=9;i+)printf(%5d,ai);printf(n);,例7有一个23的矩阵,求出每行最小值及每列的最小值。,for(j=0;j3;j+)cj=a0j;for(i=1;i2;i+)if(aijcj)cj=aij;,void main()int a23,b2,c3,i,j;,for(i=0;i2;i+)for(j=0;j3;j+)scanf(%d,12 3 24-34 56-72,for(i=0;i2;i+)bi=ai0;for(j=1;j3;j+)if(ai jbi)bi=ai j;,12,3,3,3,24

9、,24,-34,56,56,-72,-72,-72,12,-34,-34,-34,3,56,3,56,24,-72,-72,-72,for(i=0;i2;i+)for(j=0;j3;j+)printf(%5d,aij);printf(%5dn,bi);for(i=0;i3;i+)printf(%5d,ci);printf(n);,1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 2 2 1 1 1 2 2 2 2 2 1,例8:打印如下方阵,主对角线,副对角线,主对角线上元素的特点:i=j,副

10、对角线上元素的特点:i+j=6,ij&i+j6,ij&i+j6,void main()int a77,i,j;for(i=0;ij,例9任输入20个正整数,找出其中素数,并按由 小到大排好序。,main()int a20,b20,i,j,k,m;for(i=0;iai-1)bk=ai;k+;,将数组 a 中的素数找出放到数组b中,for(i=0;ik-1;i+)for(j=i+1;jk;j+)if(bjbi)m=bi;bi=bj;bj=m;for(i=0;ik;i+)printf(%5d,bi);printf(n);,用顺序排序法使 b 数组升序,例10将56矩阵每一行按由大到小排序。,voi

11、d main()int a56,i,j,k,m;for(i=0;iaij)m=aik;aik=aij;aij=m;for(i=0;i5;i+)for(j=0;j6;j+)printf(%5d,aij);printf(n);,-9,34,-9,34,34,12,-9,2,2,34,12,2,16,16,34,16,39,121,-7,-7,121,39,34,16,12,2,-7,6,6,121,39,34,16,12,6,23,23,121,39,34,23,例11用插入排序法使任意十个数据升序,void main()int i,j,m,k;a10=12,34,-9,6,8,7,44,56,1

12、21,0;for(i=1;i=j;k-)ak=ak-1;aj=m;for(i=0;i=9;i+)printf(%5d,ai);printf(n);,寻找待插入位置j,将j后的元素后移一个位置,插入,例12任输入十个国家的名字,按由小到大排序。,#include void main()char a1020,b20;int i,j;for(i=0;i0)strcpy(b,ai);strcpy(ai,aj);strcpy(aj,b);for(i=0;i10;i+)printf(%sn,ai);,例13编一程序,将两个字符串连接起来,不使用strcat函数。,void main()char s180,s280;int i=0,j=0;scanf(%s,s1);scanf(%s,s2);while(s1i!=0)i+;while(s2j!=0)s1i=s2j;i+;j+;s1i=0;printf(%sn,s1);,/*求s1中的有效字符个数*/,/*将s2接到s1后*/,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号