Я родом из C ++, про Python, и недавно начал изучать C #.Но я наткнулся на особую проблему, которую я не могу понять, потратив на это значительное время.Пожалуйста, прости, если это кажется слишком базовым, так как я пробую некоторые вопросы алгоритмического кодирования, чтобы выучить язык.
У меня есть этот код
public class Solution {
public int SmallestRangeII(int[] A, int K) {
float mean = A.Sum() / A.Length;
Console.WriteLine($"the mean is {mean}");
int mini = int.MinValue;
int maxi = int.MaxValue;
foreach(int x in A) {
int temp = x + ((x - mean) < 0 ? K : -K);
Console.WriteLine($"{temp}");
mini = Math.Min(mini, temp);
maxi = Math.Max(maxi, temp);
Console.WriteLine($"{mini} and {maxi}");
}
Console.WriteLine($"the maximum and minimum values are {maxi} and {mini}");
return maxi - mini;
}
}
Когда я передаю аргументы A = [1]
и K = 0
при выполнении этого кода, я получаю вывод:
the mean is 1
1
-2147483648 and 2147483647
the maximum and minimum values are 2147483647 and -2147483648
В первой итерации цикла, почему maxi
и mini
не изменяются на 1 и 1 соответственно?