oj Problem C: 查找【数组】

来源:互联网 发布:外贸出口数据从何而来 编辑:程序博客网 时间:2024/05/16 13:38

问题:

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

HINT

代码:

/*烟台大学计算机控制与工程学院   作者:曹欣宇   时间:2017 4 5*/#include<stdio.h> int main(){    int a[20],c[20];    int i,j,k,n,temp;    char x;    for(i=0; i<20; i++)    {        scanf("%d%c",&a[i],&x);        if(x=='\n')            break;    }    scanf("%d%d",&n,&k);    for(i=0; i<n; i++)        c[i]=a[i];    for(i=0; i<n; i++)    {        for(j=0; j<n-i-1; j++)        {            if(a[j]>a[j+1])            {                temp=a[j];                a[j]=a[j+1];                a[j+1]=temp;            }        }    }    for(i=0; i<n; i++)    {        if(c[i]<=a[k-1]&&i<k)            printf("%d ",c[i]);        else if(c[i]<=a[k-1]&&i==k)            printf("%d",c[i]);    }    return 0;}

          
小结:
这个题关键在于如何在测试数据不确定的情况下进行有限次的输入,即把回车当成\n字符。
0 0
原创粉丝点击