oj刷题 Problem C: 查找【数组】

来源:互联网 发布:传奇世界翅膀进阶数据 编辑:程序博客网 时间:2024/06/06 02:59


Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 244  Solved: 80
[Submit][Status][Web Board]

Description

利用search(a,n,k)函数在数组a的前n(n>=1)个元素中找出前k个(1<=k<=n)小的值。假设数组a中各元素的值都不相同。

Input

数组中各元素

n k

Output

a中前k个小的值

Sample Input

5 6 2 1 4 85 78 117 4

Sample Output

5 2 1 4
#include <stdio.h>void search(int a[],int n,int k){    int b[100],j,t,v,l,i;    int count=0;    for(i=0;i<n;i++)    {        b[i]=a[i];    }    for(i=0;i<n-1;i++)    {        for(j=0;j<n-i-1;j++)        {            if(a[j]>a[j+1])            {                t=a[j];                a[j]=a[j+1];                a[j+1]=t;            }        }    }    for(v=0;v<n;v++)    {        for(l=0;l<k;l++)        {            if(a[l]==b[v])            {                printf("%d",a[l]);                count++;                if(count!=k)                    printf(" ");            }        }        if(count==k)            return;    }}int main(){    int a[100],n,k,c=0;    do    {        scanf("%d",&a[c]);        c++;    }while(getchar()!='\n');    scanf("%d %d",&n,&k);    search(a,n,k);    return 0;}


0 0
原创粉丝点击