c语言递归例题分数_递归的题目

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#define _CRT_SECURE_NO_WARNINGS

#include

#include

#include

#define MAX_DATA_LEN 100

#define RANGE_DATA (int)(32767)

static int original_arr[MAX_DATA_LEN]={0};

int sec_arr[MAX_DATA_LEN+1];

int minData_arr[2];

static int first=0;

static int temp=0;

enum {

ERR_DAT=-1,

OK_DAT=1

};

int min_search(int *i){

int j,k,*pi=i;

if( *pi<0 || pi==NULL || (first != 0 && first != 1))

return ERR_DAT;

if(*pi==0){

if(first==0){

for(k=0;k

sec_arr[k]=original_arr[k];

}

}

else{

for(j=0;j

{

if(original_arr[j]!=minData_arr[0])

sec_arr[temp++]=original_arr[j];

}

}

minData_arr[first]=sec_arr[0];

}

if(minData_arr[first]>sec_arr[(*pi)++])

{

minData_arr[first]=sec_arr[(*pi)-1];

}

if((first==1)){

if(*pi==(temp-1))

{

first=0;

temp=0;

return OK_DAT;

}

}

if((first==0)&&(*pi==(MAX_DATA_LEN))){

first = 1;

*pi = 0;

}

return min_search(pi);

}

void data_arr_get(void){

int v,num=0;

srand((unsigned)time(NULL));

printf("original_arr[%4d]=\n{\n",MAX_DATA_LEN);

for(v=0;v

{

original_arr[v]=rand()%RANGE_DATA;//4*MAX_DATA_LEN

printf("%4d, ",original_arr[v]);

if(!((v+1)%20))

printf("\n");

}

printf("}\n");

}

int main(){

int v,num=0;

data_arr_get();

sec_arr[MAX_DATA_LEN]=0;

printf("Start \n");

if(min_search(&num)==OK_DAT){

printf("Search success,result:");

for(v=0;v<2;v++)

printf("%d ",minData_arr[v]);

}

else

printf("Search Fail!!");

printf("\n");

printf("Stop \n");

system("pause");

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值