cvte-c++-笔试1

来源:互联网 发布:sql找不到存储过程 编辑:程序博客网 时间:2024/05/17 22:59

有一个无序的整数数组,要求找出第n小未出现过的正偶数。
实现函数 unsigned int getMinEven(int* a, int length, int n)
示例:
输入{4,-1,1,3},4,1 输出:2
输入{3,1,2,10,5,8},6,2 输出:6
#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <math.h>#include <iostream>#include <string>#include <vector>using namespace std;void getMinEven(int* a,int length,int n){for (int i=0;i<length;i++){for (int j = i+1; j < length; j++){if(a[j-1]>a[j]){int temp;temp  = a[j-1];a[j-1]=a[j];a[j]=temp;}}}for (int i=0;i<length;i++){cout<<a[i]<<" ";}cout<<endl;int un_show[200];int flag = 0;for (int i=1;i<length;i++){if (((a[i]-a[i-1])-1) != 0){int t=1;while (1){if ((a[i-1]+t) == a[i]){break;}if((a[i-1]+t)%2 == 0  && (a[i-1]+t)>0 ){un_show[flag]=a[i-1]+t;flag++;cout<<a[i-1]+t<<endl;}t++;}}}cout<<"unshow min: "<<un_show[n-1]<<endl;}void main(){int s[200],length=0;int i=0;for (int i=0;i<200;){scanf("%d",&s[i++]);length=i;if (getchar()=='\n')break;}cout<<"length = "<<length<<endl;int n;cout<<"please input n: ";scanf("%d",&n);getMinEven(s,length,n);system("pause");}