1.记录一下自己面试遇到一道算法题,应该属于简单,当时身体不舒服头晕晕的没做出来。后面想了一想,用三元表达式可以解。想用for循环解来着,想想太麻烦了。
三元表达式
//三元表达式
a>b?a:b;
如果问号左边等式成立,则输出冒号左边的值,反之则输出冒号右边的值。
public static void Fun()
{
Console.WriteLine("请输入第一个数字");
var a = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第二个数字");
var b = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第三个数字");
var c = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第四个数字");
var d = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第五个数字");
var e = int.Parse(Console.ReadLine());
//用两次三元表达式,找出最大值。
var max1 = a > b ? (a > c ? a : c) : (b > c ? b : c);
var max = max1 > d ? (max1 > e ? max1 : e) : (d > e ? d : e);
//用两次三元表达式,找出最小值。
var min1= a < b ? (a < c ? a : c) : (b < c ? b : c);
var min = min1 < d ? (min1 < e ? min1 : e) : (d < e ? d : e);
Console.WriteLine($"平均数为{(a + b + c + d + e) / 5}" );
Console.WriteLine($"最大值为{max}");
Console.WriteLine($"最小值为{min}");
}
ps:如何交换两个变量,不用第三方数?
a=a+b;
b=a-b;
a=a-b;