24.08.14

day12

1.函数指针

     指针。保存函数的地址。这个指针指向的是一类函数


函数:
       数据类型   函数名(形参列表);  
         
函数指针:
       数据类型   (*函数指针名)(形参列表)int  add(int x , int y)
{
	return x + y;         
}


int sub(int x, int y)
{
    return x - y;
}
         
//函数指针指向某个函数
int (*p)(int x, int y);
p = add;
p = ⊂


//函数指针调用函数
指针名(实参)p(10 , 20);
(*p)(10, 20);         

2.函数指针数组

	是一个数组。每一个元素都是一个函数指针

一般形式:
       数据类型	(*函数指针数组名[元素个数]) (形参列表)int add(int x, int y)
{
    return x + y;
}

int sub(int x, int y)
{
    return x - y;
}


int main(int argc, char *argv[])
{ 

    int (*p[2])(int x, int y); 
    p[0] = add;
    p[1] = sub;


    printf("%d\n", p[0](10, 20));
    printf("%d\n", p[1](10, 20));


    return 0;
} 

3.递归函数

     递归:是一个思想,用解决递归问题、回溯思想的问题

     栈
   
     递归函数:是一个函数,函数自己调用自己。
	 (1)设计调用结束的条件	
     (2)递归函数代码简单 ,提高理解难度,增加资源开销   
         
         
eg:
    void  func()
    {
         func();           
    }
         
    func();
练习
1.阶乘
 5! =  5 * 4 * 3 * 2 * 1; 
 5! =  5 * 4!
 4! =  4 * 3!
 3! =  3 * 2!
 2! =  2 * 1!
 1! =  1     




 int  fact(int num)
 {
     if(num > 1)
     {
        return num * fact(num - 1); 
     }
     else
     {
         return 1;
     }
 }
2.拆分打印
   123456
       
void prt(int num)
{   
    if(num > 9)
    {   
        prt(num / 10);
    }   

    printf("%d\n", num % 10);

    return ;
}     

4.回调函数

	函数指针

    funcA  funcB,  函数A中的参数有一个为函数指针,
    此时如果把函数B的地址,作为参数传入函数A中, 函数A就具备调用函数B的能力,
    如果在特定情况下,函数A中调用了函数B, 那么函数B就叫回调函数    

    主调函数:funcA 
    被调函数:funcB    
        
  
    作用:  1.实现泛型、多态编程 
           2.实现减少重复的代码
           3.隐藏实现  
        
     
        
    代码见.
          test6.c    ---- 语法
          myqosrt.c  ---- 仿造qosrt实现 
  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您提供的数据集包含了 x 和 y 的数值对。如果您需要进行样条光滑拟合来拟合这些数据,可以使用以下步骤: 1. 导入所需的库和模块。例如,可以使用 Python 的 NumPy 和 matplotlib 库。 2. 创建 x 和 y 的数组,并将数据填充到相应的数组中。 3. 使用 scipy.interpolate 模块中的 spline 函数来进行样条光滑拟合。可以指定拟合的次数或选择默认的样条次数。 4. 绘制原始数据和拟合曲线的散点图和曲线图,以可视化拟合结果。 下面是一个简单的 Python 代码示例,展示了如何进行样条光滑拟合: ```python import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import spline # 创建 x 和 y 数组 x = np.array([51.06, 51.36, 51.66, 51.96, 52.26, 52.56, 52.86, 53.16, 53.46, 53.76, 54.06, 54.35, 54.65, 54.95, 55.25, 55.55, 55.85, 56.15, 56.45, 56.75, 57.05, 57.35, 57.65, 57.94, 58.24, 58.54, 58.84, 59.14, 59.44, 59.74, 60.04, 60.34, 60.64, 60.94]) y = np.array([1615.26, 1630.18, 1678.08, 1708.63, 1746.93, 1810.04, 1844.46, 1867.12, 1919.33, 1933.67, 1978.56, 2032.35, 2070.21, 2110.23, 2170.32, 2221.67, 2270.58, 2325.94, 2392.92, 2406.97, 2455.02, 2485, 2509.38, 2557.14, 2622.4, 2653.24, 2702.29, 2732.84, 2814.3, 2847.58, 2878.27, 2914.99, 2966.34, 3004.92]) # 进行样条光滑拟合 x_smooth = np.linspace(x.min(), x.max(), 200) # 创建平滑的 x 值 y_smooth = spline(x, y, x_smooth) # 使用样条光滑拟合 # 绘制原始数据和拟合曲线的散点图和曲线图 plt.scatter(x, y, color='blue', label='原始数据') plt.plot(x_smooth, y_smooth, color='red', label='拟合曲线') plt.xlabel('x') plt.ylabel('y') plt.legend() plt.show() ``` 上述代码将绘制原始数据的散点图和样条光滑拟合曲线的曲线图。您可以根据需要调整代码,以满足您的具体需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值