欢迎来到天天文库
浏览记录
ID:48142344
大小:117.50 KB
页数:27页
时间:2020-01-17
《第10讲 一维数组与字符数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10讲一维数组与字符数组以后会越来越难,因此一定要对前面的知识及时理解和掌握。看懂、听懂并不等于会用。课堂上时间有限,大家一定要及时预习和复习。复习时注意只需要把我课上讲的几个例题理解透彻并掌握即可注意:思路!算法!作业1:求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=1;i<=N-1;i++)if(a[i]>a[max_i]){max_
3、i=i;}/*求最大元素对应的下标*/printf("Themaximumscoreis%d:",a[max_i]);}4作业2:求60个学生的平均分算法:输入60个学生的成绩计算总分,平均分输出平均分#include#defineN60voidmain(){inta[N],sum;printf("Input%dscore:",N);for(i=0;i<=N-1;i++)scanf("%d",&a[i]);sum=0;for(i=0;i<=N-1;i++)/*求和*/sum+=a[i];printf("aversge=%.1f:",(flo
4、at)sum/N);}5例6-1 对200个学生成绩从大到小排序算法输入200个成绩排序输入排序结果6冒泡法对N个数从大到小排序:第0趟排序:比较a[0]和a[1],不满足顺序交换,再比较a[1]和a[2],不满足顺序交换,依此类推,直至a[N-2]和a[N-1]比较,不满足顺序交换,通过这一趟的两两比较找到第1个最小的数放在a[N-1]的位置……第J趟排序:比较a[0]和a[1],不满足顺序交换,再比较a[1]和a[2],不满足顺序交换,依此类推,直至a[N-j-2]和a[N-j-1]比较,不满足顺序交换,通过这一趟的两两比较找到第j+1个最小的数放在a[N-j-1]的位置
5、共N-1趟for(j=0;j<=N-2;j++){ /*第j趟排序*/}/*通过依次比较a[I]和a[I+1],不满足顺序交换*/for(i=0;i<=(N-1)-(j-1);i++)if(a[i]#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;
6、i<=N-j-2;i++)if(a[i]*/{t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("Thesortedscore:");for(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完整程序:冒泡法8选择法对N个数从大到小排序第0趟排序:从a[0]至a[N-1],比较找出其中最大数所在的下标k,若k!=0,说明a[k]比a[0]大,则交换a[0]
7、和a[k],通过这一趟的比较找到第1个最大的数放在a[0]的位置……第J趟排序:从a[j]至a[N-1],比较找出其中最大数所在的下标k,若k!=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],比较找出其中最大数所在的下标max_i*//*若max_i!=j,说明a[max_i]比a[
此文档下载收益归作者所有