python获取数组一部分_python如何取得二维数组局部峰值

展开全部

#include#include #include #include#define maxsize 6 //每个波形数据最大采集个数  默认6 typedef struct array1{    int *data;    struct array1 *next;}ARR1;ARR1 *addNewArr(ARR1 *arrHead,ARR1 *arrTail);//插入一组波形数据节点 返回32313133353236313431303231363533e4b893e5b19e31333365653931尾节点int findMaxF(ARR1 *arrHead);//查找最大峰值int removeMinF(ARR1 *arrHead);//移除最小峰值数据组   返回最小峰值void printfArr(ARR1 *arrHead);//打印数据链表 int main(){    ARR1 *arrHead=(ARR1 *)malloc(sizeof(ARR1));    arrHead->next=NULL;    ARR1 *arrTail=NULL;     arrTail=addNewArr(arrHead,arrTail);//想插入几组,就调用几次  我就测试6组    arrTail=addNewArr(arrHead,arrTail);    arrTail=addNewArr(arrHead,arrTail);    arrTail=addNewArr(arrHead,arrTail);    arrTail=addNewArr(arrHead,arrTail);    arrTail=addNewArr(arrHead,arrTail);     printf("采集的原数据组为:\n");    printfArr(arrHead);    printf("最大峰值:%d,最小峰值值:%d\n",findMaxF(arrHead),removeMinF(arrHead));    printf("删除最小峰值数据组后的数据为:\n");    printfArr(arrHead);    return 0;}  void printfArr(ARR1 *arrHead)//打印数据链表{    while(arrHead->next!=NULL)    {        printf("%d,%d,%d,%d,%d,%d\n",arrHead->next->data[0],arrHead->next->data[1],arrHead->next->data[2],arrHead->next->data[3],arrHead->next->data[4],arrHead->next->data[5]);        arrHead=arrHead->next;    }}ARR1 *addNewArr(ARR1 *arrHead,ARR1 *arrTail)//插入一组波形数据   返回尾节点{    int *data=(int *)malloc(sizeof(int)*maxsize),i;    printf("采集一组波形数据(最大采集个数%d):",maxsize);    for(i=0;idata=data;    arrNew->next=NULL;     if(arrHead->next==NULL)//插入第一组数组 作为首节点        arrHead->next=arrNew;    else        arrTail->next=arrNew;     arrTail=arrNew;    return arrTail;}int findMaxF(ARR1 *arrHead)//查找最大峰值{    int i,maxNum=0,maxf=0;    while(arrHead->next!=NULL)    {        maxNum=0;        for(i=0;inext->data[i]>maxNum)                maxNum=arrHead->next->data[i];        }        if(maxNum>maxf)//获取最大峰值            maxf=maxNum;        arrHead=arrHead->next;    }    return maxf;}int removeMinF(ARR1 *arrHead)//移除最小峰值数据组   返回最小峰值{    int i,maxNum=0,minf=INT_MAX;    ARR1 *minDataSave=NULL,*arrHeadSave=arrHead;    while(arrHead->next!=NULL)    {        maxNum=0;        for(i=0;inext->data[i]>maxNum)                maxNum=arrHead->next->data[i];        }        if(maxNumnext;            minf=maxNum;        }        arrHead=arrHead->next;    }     arrHead=arrHeadSave;    //移除最小峰值数据组    while(arrHead->next!=NULL)    {        if(arrHead->next==minDataSave)//删除节点重组链表        {            arrHead->next=minDataSave->next;            minDataSave->next=NULL;            free(minDataSave->data);//释放节点内存            free(minDataSave);            break;        }        arrHead=arrHead->next;    }     return minf;}

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值