Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент - C# (184987)
Формулировка задачи:
1)Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент.
2)Создать ступенчатый массив, скопировав в него только те элементы из начального массива, которые отличаются от среднего арифметического всех элементов массива не более чем на 30%.
Решение задачи: «Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент»
textual
Листинг программы
int[,] MainArray = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, { 3,3, 3, 3, 3, 3, 3, 3, 3, 3 } }; string[][] SteppedArray = new string[MainArray.GetLength(0)][]; // итоговый ступенчатый, будем в стринге делать string result = ""; int Sum=0;// сумма всех double AverageValue = 0; // среднее значение // считаем среднее; for (int i = 0; i < MainArray.GetLength(0); i++) for (int j = 0; j < MainArray.GetLength(1); j++) Sum+=MainArray[i,j]; AverageValue = Sum / MainArray.Length; // проходимся еще раз сравнивая со средним // будем делать так , записываем нужные значения в строку , разделяя каждый столбец ';' , а элементы столбцов '+' for (int i = 0; i < MainArray.GetLength(0); i++) { if(i!=0) result+=";"; // при первом входе не ставим ';'; for (int j = 0; j < MainArray.GetLength(1); j++) if (Math.Abs(AverageValue - MainArray[i, j]) < (0.3 * AverageValue)) {// вычитаем из среднего текущий, берем модуль получивщегося и сравниваем с 30% (не будет работать при отрицательных значений в массиве , попробуйте добавить это сами) result += MainArray[i, j]+"+"; } } string[] temp = result.Split(';'); for (int i = 0; i < MainArray.GetLength(0); i++) SteppedArray[i] = temp[i].Split('+');
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д