首页 > 编程知识 正文

输入一个正整数在输入n个正整数,输出最大值,输出一个正整数

时间:2023-05-06 06:27:00 阅读:184469 作者:1836

/*给定一个含n(n>=1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。例如,数组{-5,3,2,3}中未出现的最小正整数是1;数组{1,2,3}中未出现的最小正整数是4。*/#include<stdio.h>#include<stdlib.h>#include<string.h>#define InitSize 10typedef int ElemType;typedef struct{ElemType *data;int length;}SqList;bool InitList(SqList &L){L.data = (ElemType*)malloc(sizeof(ElemType)*InitSize);L.length = 0;return true;}bool FindMinInt(SqList L,int &loc){int *b;b = (ElemType*)malloc(sizeof(ElemType)*L.length);memset(b,0,sizeof(ElemType)*L.length);for(int i=0;i<L.length;++i){if(L.data[i]<=L.length && L.data[i]>0)b[L.data[i]-1] = 1;}for(int j=0;j<L.length;++j)if(b[j] == 0)break;loc = j+1;return true;}bool printList(SqList L){for(int i=0;i<L.length;++i)printf("%d ",L.data[i]);printf("n");return true;}void main(){SqList L;int loc;InitList(L);int a[4] = {-5,3,2,3};for(int i=0;i<4;++i){L.data[i] = a[i];++L.length;}printList(L);FindMinInt(L,loc);printf("%dn",loc);}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。