输出一个数组中最小的三个数值??

ivy999 2010-05-18 12:24:01
输出一个数组中最小的三个数值,分别输出到text1,text2,text3中。

参考数据:
数组:(21,3,34,5,7,5,14,17,11,13)

要求结果:
以上数组中最小的三个数值是“3,5,7”.
而不是“3,5,5”

请写出代码来,谢谢!
...全文
270 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝隆 2010-05-18
  • 打赏
  • 举报
回复
将数据从小到大排序,头三个不就是你要的??
ivy999 2010-05-18
  • 打赏
  • 举报
回复
将数组排序我会啊!就是不知怎样去除重复的数??
熊孩子开学喽 2010-05-18
  • 打赏
  • 举报
回复
楼上是.NET的代码吧. 数组自带排序功能, 而且这个自带的排序据说是强到离谱, 排序的时间居然比程序里数组循环一次的时间更短.
threenewbee 2010-05-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 veron_04 的回复:]
将数据从小到大排序,头三个不就是你要的??
[/Quote]
问题解决了。
给大家介绍下 .NET LINQ 如何做。

// 定义数组
int[] a = { 20, 9, 11, 40, 43, 3, 5, 11, 13, 3, 7, 25, 2, 9, 18, 16 };
// 真正的代码就 1 行:
var result = (from n in a orderby n select n).Distinct().Take(3).ToList();
// 输出
foreach (int i in result)
Console.WriteLine(i);


结果:
2
3
5
伊吹萃香 2010-05-18
  • 打赏
  • 举报
回复
可以先排序,而后去除重复,以下是简单的示例:

Dim array1() As Integer = {21, 3, 34, 5, 7, 5, 14, 17, 11, 13}

Array.Sort(array1)
For i = 0 To array1.Length - 2
If array1(i) = array1(i + 1) Then
For j = i + 1 To array1.Length - 2
array1(j) = array1(j + 1)
Next
End If
Next

TextBox1.Text = array1(0)
TextBox2.Text = array1(1)
TextBox3.Text = array1(2)
熊孩子开学喽 2010-05-18
  • 打赏
  • 举报
回复
你先排除重复数据,再排序
或者先排序再去除重复数据
就可以了

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧