C语言博客作业--函数嵌套调用

一、实验作业

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.学习体会

  • 工程作业刚开始时都不会建工程,一些函数都不太会利用,删除插入太会。
posted @ 2018-01-05 20:54  做人要有疯度  阅读(221)  评论(1编辑  收藏  举报