用C#编写,定义一个元素个数不确定的数组,对数组进行排序,并求数组中的最大值和最小值。求助

如题所述

private void button2_Click(object sender, EventArgs e)
{
// 动态数组用 arraylist 及它自己的方法实现排序
ArrayList arr = new ArrayList();
arr.Add(100);
arr.Add(20);
arr.Add(60);
arr.Add(40);
arr.Add(90);
arr.Add(77);
arr.Add(11);
arr.Sort();
label1.Text = "";
foreach (var y in arr)
{
label1.Text += y.ToString() + ",";
}
label1.Text += "min is " + arr[0].ToString();
label1.Text += "max is " + arr[arr.Count - 1].ToString();
//静态数组,用Lambda表达式+Linq实现排序
int[] arr2 = new int[7];
arr2[0] = 100;
arr2[1] = 20;
arr2[2] = 60;
arr2[3] = 40;
arr2[4] = 90;
arr2[5] = 77;
arr2[6] = 11;
var od = from w in arr2 orderby w select w;
label2.Text = "";
foreach (int x in od)
{
label2.Text += x.ToString() + ",";
}
label2.Text +="min is "+ od.First().ToString();
label2.Text +="max is "+ od.Last().ToString();
}
两种方法都可以实现,你自己试试吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-16
#include<stdio.h>
int main()
{
int a[7]=,k[10];
int m,i,j=0,h=0;
scanf("%d",&m);
for(i=0;i<7;i++)
{
if(a[i]<=m&&a[i+1]>=m&&h==0)
else k[j++]=a[i];
}
for(i=0;i<j;i++)
printf("%d ",k[i]);
return 0;
}
如果原顺序是从大到小,或是有小到大不确定呢????有应怎么编写呢????
如果是考试,OR 测试题,出现这种情况的机率为0,因为它会给出一个已知数组来判断是按升还是降来排序!
如int a[7]=,本程序是按升排序!
第2个回答  2011-09-16
用封装好的List<T>,ArrayList就可以。代码自己研究下,有好处
相似回答