oj2325查找【数组】

来源:互联网 发布:淘宝3个月没卖出一件 编辑:程序博客网 时间:2024/05/16 16:19
问题描述:利用search(a,n,k)函数在数组a的前n(n>=1)个元素中找出前k个(1<=k<=n)小的值。假设数组a中各元素的值都不相同。
作者;h何知令

完成时间:2017年4月25日

代码:

/*问题描述:利用search(a,n,k)函数在数组a的前n(n>=1)个元素中找出前k个(1<=k<=n)小的值。假设数组a中各元素的值都不相同。作者;h何知令完成时间:2017年4月25日*/#include <stdio.h>#include <stdlib.h>void search(int a[],int n,int k)程序{    int state[n];    int max=a[0],min=a[0];    int left=n;    int i,place;    for(i=0; i<n; i++)    {        state[i]=0;        if(a[i]<min)            min=a[i];    }    while(left>k)    {        max=min;        for(i=0; i<n; i++)        {            if(a[i]>=max&&state[i]==0)            {                max=a[i];                place=i;            }        }        if(a[place]!=min)        {            state[place]=1;            left--;        }    }    for(i=0; i<n; i++)    {        if(state[i]==0)        {            printf("%d",a[i]);            if(i!=k)                printf(" ");        }    }}int main(){    int a[100];    int i=0;    int m,n;    char C;    while(C!='\n')    {        scanf("%d%c",&a[i],&C);        i++;    }    scanf("%d %d",&m,&n);    search(a,m,n);    return 0;}
程序运行结果展示:


知识点总结:数组和打表

学习心得:估计是最笨的办法

0 0