В целочисленном массиве размером n*n удалить строки, в которых сумма элементов не превышает заданного числа - C#
Формулировка задачи:
Помогите пожалуйста с заданием, в массиве размером n*n, элементы которого являются целыми числами, удалить все строки, в которых сумма элементов не превышает заданного числа.
Решение задачи: «В целочисленном массиве размером n*n удалить строки, в которых сумма элементов не превышает заданного числа»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// массив размером [n,n]
int n = 3;
int[,] array = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
// массив сумм одной строки
int[] sum = new int[n];
// сумма не должна быть больше х
int x = 14;
// новое кол-во строк массива
int new_size = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
sum[i] += array[i, j];
}
// если сумма строки больше х эту строку будем писать в новый массив
if (sum[i] > x) new_size++;
}
// новый массив
int[,] new_arr = new int[new_size, n];
// новый номер строки массива
int new_i = 0;
for (int i = 0; i < n; i++)
{
if (sum[i] > x)
{
for (int j = 0; j < n; j++)
{
// записываем в новый массив значения из первого
new_arr[new_i, j] = array[i, j];
}
// номер строки в новом массиве
new_i++;
}
}
// проверка
for (int i = 0; i < new_size; i++)
{
Console.WriteLine("\nСтрока № " + i);
for (int j = 0; j < n; j++)
{
Console.WriteLine(new_arr[i, j]);
}
}
Console.ReadKey();
}
}
}