第七次课上课程序及习题参考程序.docx
- 文档编号:6795884
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:20
- 大小:71.69KB
第七次课上课程序及习题参考程序.docx
《第七次课上课程序及习题参考程序.docx》由会员分享,可在线阅读,更多相关《第七次课上课程序及习题参考程序.docx(20页珍藏版)》请在冰豆网上搜索。
第七次课上课程序及习题参考程序
第七次课上课程序
复习:
例1:
选择法排序:
#include
intmain(void)
{
intarr[10],i,j,temp,min;
printf("Pleaseinput10numbers:
\n");
for(i=0;I<10;i++)/*数组的输入*/
{
scanf("%d",&arr[i]);
}
for(i=0;i<10-1;i++)/*选择法从小到大排序*/
{
min=i;
for(j=i+1;j<10;j++)
{
if(arr[min]>arr[j])
{
min=j;
}
}
if(min!
=i)
{
temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
}
}
printf("Thesortednumbers:
\n");
for(i=0;i<10;i++)/*数组的输出*/
{
printf("%4d",arr[i]);
}
return0;
}
例2:
冒泡法排序
#include
intmain(void)
{
intarr[10,i,j,temp;
printf("Pleaseinput10numbers:
\n");
for(i=0;i<10;i++)/*数组的输入*/
{
scanf("%d",&arr[i]);
}
for(i=0;i<10-1;i++)/*冒泡法从小到大排序*/
{
for(j=0;j<10–i-1;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
printf("Thesortednumbers:
\n");
for(i=0;i<10;i++)/*数组的输出*/
{
printf("%4d",arr[i]);
}
return0;
}
函数独立:
记忆1:
理解并记忆例1和例2选择法、冒泡法函数的声明、调用、定义
例1:
选择法排序:
#include
voidselect_sort(intarr[],intn);/*选择法排序函数声明*/
intmain(void)
{
intarr[10],i;
printf("Pleaseinput10numbers:
\n");
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
select_sort(arr,10);/*选择法排序函数调用*/
printf("Thesortednumbers:
\n");
for(i=0;i<10;i++)
{
printf("%4d",arr[i]);
}
printf("\n");
return0;
}
voidselect_sort(intarr[],intn)/*选择法排序函数定义*/
{
inti,j,min,temp;
for(i=0;i { min=i; for(j=i+1;j { if(arr[min]>arr[j]) { min=j; } } if(min! =i) { temp=arr[i]; arr[i]=arr[min]; arr[min]=temp; } } } 例2: 冒泡法排序 #include voidbubble_sort(intarr[],intn);/*冒泡法排序函数声明*/ intmain(void) { intarr[10],i; printf("Pleaseinput10numbers: \n"); for(i=0;i<10;i++) { scanf("%d",&arr[i]); } bubble_sort(arr,10);/*冒泡法排序函数调用*/ printf("Thesortednumbers: \n"); for(i=0;i<10;i++) { printf("%4d",arr[i]); } printf("\n"); return0; } voidbubble_sort(intarr[],intn)/*冒泡法排序函数定义*/ { inti,j,temp; for(i=0;i { for(j=0;j { if(arr[j]>arr[j+1]) { temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } 例3: 二维数组举例 58题码: 章节: 数组 考查点: 键盘输入技巧的掌握和二维数组的应用 难度: 2 编写一程序P2-216.C实现以下功能 求任意的一个m×m矩阵的最大数及其所在的行列数,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型)。 编程可用素材: printf("Please input m: ")...、printf("\nPlease input array: \n")...、printf("\nmax=...,i=...,j=...\n"...。 程序的运行效果应类似地如图1所示,图1中的5和 1 45 67 235 464 35 6 89 32342 8 347 9346 47 95 746 46 785 436 19434 634 3235 567 24 8465 25 是从键盘输入的内容。 图1程序运行效果示例 分析结果: 输入: m和arr[][]值 输出: 最大值max及其行标maxi和列标maxj 算法: 初值max=arr[0][0],maxi=0,maxj=0;将max与arr[][]数组中所有元素进行比较找出最大值并记下其行标和列标 #include intmain(void) { /*定义变量*/ intarr[20][20]; inti,j,m,max,maxi,maxj; /*输入数据*/ printf("Pleaseinputm: "); scanf("%d",&m); printf("\nPleaseinputarray: \n"); for(i=0;i { for(j=0;j { scanf("%d",&arr[i][j]); } } /*处理数据*/ max=arr[0][0]; maxi=0; maxj=0; for(i=0;i { for(j=0;j { if(max { max=arr[i][j]; maxi=i; maxj=j; } } } /*输出数据*/ printf("\nmax=%d,i=%d,j=%d\n",max,maxi,maxj); return0; } 类似有59题(p2-217.c)、60题(p2-218.c) 例4: 顺序查找函数——有序表和无序表皆可 intsearch(inta[],intn,intx) { inti; for(i=0;i { if(a[i]==x) { return(i); } } return(-1); } 例5: 折半查找函数——适用于有序表 intbinsearch(inta[],intn,intx) { intlow,high,mid; low=0; high=n-1; while(low<=high) { mid=(high+low)/2; if(x>a[mid]) { low=mid+1; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 上课 程序 习题 参考
![提示](https://static.bdocx.com/images/bang_tan.gif)