说下你这个流程吧:
首先:
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();
程序有问题,对max和min赋值应放在录入数据for循环之后,否则a[0]初值为0,即最大值为零,比较大小部分也有问题,需要修改
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();