C#输入数组,输出最大值,最小值

2025-03-01 03:48:08
推荐回答(3个)
回答1:

说下你这个流程吧:

首先: 

 int[] a = new int[3];//此时a[0]=0

int max = a[0];//max=0

int min = a[0];//min=0

 for (int i = 0; i < a.Length; i++)

 {

     Console.WriteLine("请输入第{0}个数字", i+1);

     a[i] = Convert.ToInt32(Console.ReadLine());

  }

//循环输入a={10,22,63} 即a[0]=10

if (max  > a[0])//max=0,a[0]=10 不成立

{

       max = a[0];

}

if (min < a[0])//min=0 a[0=10] 成立

{

    min = a[0];//min=10

}

Console.WriteLine("最大值为{0},最小值为{1}",max,min);

//输出结果:最大值为0,最小值为10

Console.ReadKey();


错得一塌糊涂

int[] a = new int[3];

Console.WriteLine("请输入第{0}个数字", 1);
a[0] = Convert.ToInt32(Console.ReadLine());
//先给a[0]赋值 使max和min的初值为a[0]而不是0 否则对于全负数或是三个数都大于0的情况下的比对会出错
int max = a[0];
int min = a[0];
for (int i = 1; i < a.Length; i++)
{
    Console.WriteLine("请输入第{0}个数字", i + 1);
    a[i] = Convert.ToInt32(Console.ReadLine());
    //循环内比对 保存max和min
    if (max < a[i])
    {
        max = a[i];
    }
    if (min > a[i])
    {
        min = a[i];
    }           
}
            
Console.WriteLine("最大值为{0},最小值为{1}", max, min);
Console.ReadKey();

回答2:

程序有问题,对max和min赋值应放在录入数据for循环之后,否则a[0]初值为0,即最大值为零,比较大小部分也有问题,需要修改

回答3:

int[] a = new int[3];
int max = a[0];
int min = a[0];
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine("请输入第{0}个数字", i+1);
a[i] = Convert.ToInt32(Console.ReadLine());
if (max < a[i])
{
max = a[i];
}
if (min > a[i])
{
min = a[i];
}
}
Console.WriteLine("最大值为{0},最小值为{1}",max,min);
Console.ReadKey();