维数组与字符数组.ppt

维数组与字符数组.ppt

ID:51615269

大小:351.86 KB

页数:20页

时间:2020-03-26

维数组与字符数组.ppt_第1页
维数组与字符数组.ppt_第2页
维数组与字符数组.ppt_第3页
维数组与字符数组.ppt_第4页
维数组与字符数组.ppt_第5页
资源描述:

《维数组与字符数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10讲 一维数组与字符数组请大家利用放假期间及时消化我讲的内容,并举一反三,模仿未讲过的例题多写程序。如果说学习C语言有捷径的话:那就是多读程序,多写程序例:求60个学生的最高分算法:输入60个学生的成绩依次比较,找出最高分输入最高分。2方法一:#include#defineN60voidmain(){inta[N],max;printf("Input%dscore:",N);for(i=0;i<=N-1;i++)scanf("%d",&a[i]);max=a[0];/*假设第一个元素

2、最大*/for(i=1;i<=N-1;i++)/*依次拿当前最大值与下一个元素比较*/if(a[i]>max){max=a[i];}printf("Themaximumscoreis%d:",max);}3方法二:#include#defineN60voidmain(){inta[N],max_i;printf("Input%dscore:",N);for(i=0;i<=N-1;i++)scanf("%d",&a[i]);max_i=0;/*假设最大值对应的下标为0*/for(i

3、=1;i<=N-1;i++)if(a[i]>a[max_i]){max_i=i;}/*求最大元素对应的下标*/printf("Themaximumscoreis%d:",a[max_i]);}4例6-1对200个学生成绩 从大到小排序算法输入200个成绩排序输入排序结果5冒泡法对N个数从大到小排序:第0趟排序:比较a[0]和a[1],不满足顺序交换,再比较a[1]和a[2],不满足顺序交换,依此类推,直至a[N-2]和a[N-1]比较,不满足顺序交换,通过这一趟的两两比较找到第1个最小的数放在a[N-

4、1]的位置……第J趟排序:比较a[0]和a[1],不满足顺序交换,再比较a[1]和a[2],不满足顺序交换,依此类推,直至a[N-j-2]和a[N-j-1]比较,不满足顺序交换,通过这一趟的两两比较找到第j+1个最小的数放在a[N-j-1]的位置共N-1趟for(j=0;j<=N-2;j++){/*第j趟排序*/}/*通过依次比较a[I]和a[I+1],不满足顺序交换*/for(i=0;i<=N-j-2;i++)if(a[i]

5、clude#defineN200voidmain(){inta[N],i,j,t;printf("Input%dscore:",N);for(i=0;i<=N-1;i++)scanf("%d",&a[i]);for(j=0;j<=N-2;j++)/*冒泡法排序*/for(i=0;i<=N-j-2;i++)if(a[i]>a[i+1])/*若从小到大排序,改成<*/{t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("Thesortedscore:");for

6、(i=0;i<=N-1;i++){if(i%15==0)printf("");printf("%4d",a[i]);}}/*书中P167的源代码改为for(i=0;i<=N-j-2;i++)*/例6-1完整程序:冒泡法7选择法对N个数从大到小排序第0趟排序:从a[0]至a[N-1],比较找出其中最大数所在的下标k,若k!=0,说明a[k]比a[0]大,则交换a[0]和a[k],通过这一趟的比较找到第1个最大的数放在a[0]的位置……第J趟排序:从a[j]至a[N-1],比较找出其中最大数所在的下标k,若k

7、!=j,说明a[k]比a[j]大,则交换a[j]和a[k],通过这一趟的比较找到第j+1个最大的数放在a[j]的位置共N-1趟for(j=0;j<=N-2;j++){/*第j趟排序,通过这一趟排序,找到第j+1大的数存于a[j]*/}/*从a[j]至a[N],比较找出其中最大数所在的下标k*//*若k!=j,说明a[k]比a[j]大,则交换a[j]和a[k]*/k=j;for(i=j+1;i<=N-1;i++)if(a[i]>a[k]){k=i;}if(k!==j){t=a[k];a[k]=a[j];a[j]

8、=t;}8#include#defineN200voidmain(){inta[N],i,j,t;printf("Input%dscore:",N);for(i=0;i<=N-1;i++)scanf("%d",&a[i]);for(j=0;j<=N-2;j++)/*选择法排序*/{k=j;for(i=j+1;i<=N-1;i++)if(a[i]>a[k])/*若从小到大排序,改

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。