牛骨文教育服务平台(让学习变的简单)
博文笔记

oj2325查找【数组】

创建时间:2017-04-25 投稿人: 浏览次数:539
问题描述:利用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!="
")
    {
        scanf("%d%c",&a[i],&C);
        i++;
    }
    scanf("%d %d",&m,&n);
    search(a,m,n);
    return 0;
}
程序运行结果展示:


知识点总结:数组和打表

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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。