一、实验作业
1.1 十进制转换二进制
设计思路
如果n==0 输出0
否则如果n==1 输出1
否则
dectobin(n/2)
输出n%2
代码截图
调试问题
二、截图本周题目集的PTA最后排名
三、阅读代码
#include <stdio.h>
int r_search(int arr[], int low, int high, int k);
int main( )
{
int key,index,n,i;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("输入要查找的关键字:\n");
scanf("%d", &key);
index = r_search(a, 0, n-1, key);
if(index >= 0)
printf("关键字所在位置是:%d \n", index);
else
printf("没有找到关键字\n");
return 0;
}
int r_search(int arr[], int low, int high, int k)
{
int i,mid;
if (low>high) i=-1;
else
{
mid=(low+high)/2;
if(arr[mid]==k)
i=mid;
else if(arr[mid]>k)
i=r_search(arr, low,mid-1,k);
else
i=r_search(arr, mid+1,high,k);
}
return i;
}
- 用递归实现二分查找在形式上更为简洁,将二分查找封装成函数,不同情况下进入不同的递归式子,可读性高。
四、本周学习总结(
1.介绍本周学习内容
- 学会了函数嵌套调用。
- 递归函数中递归出口和递归式子是要点,掌握式子的关系不要深究过程,不然会混乱。
- 宏定义格式
#define 宏名 宏定义字符串
。
2.学习体会
- 工程作业刚开始时都不会建工程,一些函数都不太会利用,删除插入太会。