namespace A._2._4数组排序和计算练习
{
class Program
{
static void Main(string[] args)
{
float x=0;
int[] a = new int[5];
Console.WriteLine("请输入五个整数,并用逗号分开:");
string s = Console.ReadLine();
string []str=s.Split (',');
for (int i = 0; i < str.Length; i++)
{
a[i] = Convert .ToInt32 (str[i]);
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (a[i] >= a[j])
{
a[i] = a[j];
}
}
}
Console.Write("正序:");
for (int m = 0; m < 5; m++)
{
Console.Write(a[m]);
}
Console.Write("逆序:");
for (int m = 5; m > 0; m--)
{
Console.Write(a[m]);
}
for (int m = 5; m > 0; m--)
{
x = a[m] + x;
}
Console.WriteLine("最大值:{0}", a[5]);
Console.WriteLine("平均值为:" + x/5);
Console.ReadLine();
}
}
}
结果是这样的,剩下的最大值和平均值也没出来,求问
a[i] = a[j]; 这里错了吧 是要交换?
int[] a = new int[5]; 这里数组a的大小是5,最后一位是a[4]。 循环里m=5,a[5]当然溢出了啊。
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (a[i] >= a[j])
{
a[i] = a[j];
}
}
}
删除,换成
a = a.OrderBy(x => x).ToArray();
for (int m = 5; m > 0; m--)
修改为
for (int m = 4; m >= 0; m--)
另外在程序开头加上
using System.Linq;