oj2325查找【数组】
问题描述:利用search(a,n,k)函数在数组a的前n(n>=1)个元素中找出前k个(1<=k<=n)小的值。假设数组a中各元素的值都不相同。
作者;h何知令
![]()
作者;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; }程序运行结果展示:
知识点总结:数组和打表
学习心得:估计是最笨的办法
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: memset()不能对整形数组初始化
- 下一篇: 数组