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

2024-12-25 12:52:14
推荐回答(3个)
回答1:

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();
}
两种方法都可以实现,你自己试试吧

回答2:

#include
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;iprintf("%d ",k[i]);
return 0;
}
如果原顺序是从大到小,或是有小到大不确定呢????有应怎么编写呢????
如果是考试,OR 测试题,出现这种情况的机率为0,因为它会给出一个已知数组来判断是按升还是降来排序!
如int a[7]=,本程序是按升排序!

回答3:

用封装好的List,ArrayList就可以。代码自己研究下,有好处