嗯,这并不难,我做到了,但我不知道如何找到它的位置。 我知道在CASE1和CASE2中找到位置但在CASE3中找不到。 有什么帮助吗?
int serial = 1, num, max, max2, i = 2,n;
Console.WriteLine("Enter number of numbers");
n = int.Parse(Console.ReadLine());
Console.WriteLine("Enter number");
num = int.Parse(Console.ReadLine());
/*case 1 */
max = num;
max2 = num;
for (; i <= n; i++)
{
Console.WriteLine("enter num");
num = int.Parse(Console.ReadLine());
/* case 3 */
if (num > max)
{
max2 = max;
max = num;
serial = i;
}
/* case 2 */
else if (num > max2)
{
max2 = num;
serial = i;
}
}
答案 0 :(得分:0)
让我们再使用一个变量来存储最大数量的位置。在下面serial2
是您的问题的结果。
int serial = 1, serial2 = 1, num, max, max2, i = 2,n;
Console.WriteLine("Enter number of numbers");
n = int.Parse(Console.ReadLine());
Console.WriteLine("Enter number");
num = int.Parse(Console.ReadLine());
/*case 1 */
max = num;
max2 = num;
for (; i <= n; i++)
{
Console.WriteLine("enter num");
num = int.Parse(Console.ReadLine());
/* case 3 */
if (num > max)
{
max2 = max;
max = num;
serial2 = serial;
serial = i;
}
/* case 2 */
else if (num > max2)
{
max2 = num;
serial2 = i;
}
}
答案 1 :(得分:0)
我认为这就是您所追求的 - 当您输入的数字替换为最大数字时,您只是没有更新第二大指数:
Console.WriteLine("Enter number of numbers");
int numberOfNumbers = int.Parse(Console.ReadLine());
int? largestNumber = null;
int? secondLargestNumber = null;
int? indexOfLargestNumber = null;
int? indexOfSecondLargestNumber = null;
for (int i = 0; i < numberOfNumbers; i++)
{
Console.WriteLine("Enter number");
int inputNumber = int.Parse(Console.ReadLine());
if (largestNumber == null || inputNumber > largestNumber)
{
secondLargestNumber = largestNumber;
largestNumber = inputNumber;
indexOfSecondLargestNumber = indexOfLargestNumber;
indexOfLargestNumber = i;
}
else if (secondLargestNumber == null || inputNumber > secondLargestNumber)
{
secondLargestNumber = inputNumber;
indexOfSecondLargestNumber = i;
}
}
/*because you started i=1 rather than i=0 as I've done, incrememting the indexes by 1*/
indexOfSecondLargestNumber++;
indexOfLargestNumber++;
Console.WriteLine("The {0} number entered ({1}) was the second largest.",indexOfSecondLargestNumber,secondLargestNumber);