Skip to content

Instantly share code, notes, and snippets.

@nickaroot
Last active September 8, 2018 13:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nickaroot/a57f81e24dbebf20674a7cc002a49e28 to your computer and use it in GitHub Desktop.
Save nickaroot/a57f81e24dbebf20674a7cc002a49e28 to your computer and use it in GitHub Desktop.
NDRW C# FINAL
class First
{
// Дан одномерный массив Хк.
// Найти последний среди элементов с четными значениями.
// Все отрицательные элементы массива удалить.
// В конец массива дописать среднее арифметическое положительных элементов.
/*
*
* Тестовые входные данные:
*
* 17
* 35
* -12
* -24
* 352
* -5
* -5
* 61
* -17
* 52
* -16
* -34
* -43
* -36
* 834
* 74
* 234
* 215
*
*/
public First()
{
var yn = 0;
Console.Write("Введите размер массива: ");
yn = Int32.Parse(Console.ReadLine());
var y = new int[yn];
for (var i = 0; i < yn; i++)
{
Console.Write("x[" + i +"] = ");
y[i] = Int32.Parse(Console.ReadLine());
}
Console.WriteLine();
Console.Write("{ ");
foreach (var x in y)
Console.Write((x) + " ");
Console.Write("}");
Console.WriteLine();
Console.WriteLine();
int offset = 0, counter = 0, sum = 0, last = y[0];
bool wasRemoved = false;
for (int i = 0; i < yn; i++)
{
if (wasRemoved)
{
Console.WriteLine("Удален элемент x[" + (i - 1) + "] = " + y[i - 1]);
Console.WriteLine();
wasRemoved = false;
}
last = (y[i] % 2 == 0) ? y[i] : last;
if (y[i] > 0)
{
sum += y[i];
counter += 1;
}
y[i - offset] = y[i];
offset += (y[i] < 0) ? 1 : 0;
wasRemoved = (y[i] < 0);
}
var z = new int[y.Length - offset + 1];
Array.Copy(y, z, (y.Length < z.Length) ? y.Length : z.Length);
z[z.Length - 1] = sum / counter;
Console.WriteLine((last % 2 == 0) ? "Последний среди элементов с четными значениями: " + (last) : "Элементов с четными значениями не найдено");
Console.Write("{ ");
foreach (var x in z)
Console.Write((x) + " ");
Console.Write("}");
Console.ReadKey();
}
}
class Second
{
// Сформировать одномерный массив,
// состоящий из сумм четных элементов,
// располагающихся в нечетных строках матрицы X (n x m).
/*
* Тестовые входные данные:
*
* 4
* 4
* 253
* 5
* 63
* 53
* 115
* 1
* 7
* 565
* 243
* 2
* 243
* 674
* 2
* 3
* 75
* 2
*
*/
public Second()
{
var xn = 0;
var xm = 0;
var find = false;
Console.Write("Введите количество строк: ");
xn = Int32.Parse(Console.ReadLine());
Console.Write("Введите количество столбцов: ");
xm = Int32.Parse(Console.ReadLine());
var x = new int[xn][];
for (var i = 0; i < xn; i++)
{
x[i] = new int[xm];
for (var j = 0; j < xm; j++)
{
Console.Write("x[" + i + "][" + j + "] = ");
x[i][j] = int.Parse(Console.ReadLine());
}
}
Console.WriteLine();
foreach (var n in x)
{
foreach (var m in n)
Console.Write((String.Format("{0,4:f0}", m)) + "\t");
Console.WriteLine();
}
Console.WriteLine();
var y = new int[x.Length / 2];
var si = 0;
for (int i = 0; i < xn; i += 2)
{
var s = 0;
foreach (var m in x[i + 1])
{
s += (m % 2 == 0) ? m : 0;
find = (m % 2 == 0) || find;
}
if (s != 0)
{
y[si] = s;
si += 1;
}
}
if (find)
{
Console.Write("{ ");
for (int z = 0; z < si; z++)
{
Console.Write((y[z]) + " ");
}
Console.Write("}");
}
else
{
Console.WriteLine("Четных элементов в нечетных строках не найдено");
}
Console.ReadKey();
}
}
class Third
{
// Все элементы матрицы X (n x n),
// лежащие выше второстепенной диагонали,
// заменить количеством элементов с дробной частью,
// лежащих на главной диагонали.
/*
* Тестовые входные данные:
*
* 4
* 1.34
* -1
* -42
* 32
* 23
* -29
* 65
* -5.8
* 12
* -58
* -5
* -22
* 23
* 52
* 8
* 9.342
*
*/
public Third()
{
var xn = 0;
Console.Write("Введите размер матрицы: ");
xn = Int32.Parse(Console.ReadLine());
var x = new double[xn][];
for (var i = 0; i < xn; i++)
{
x[i] = new double[xn];
for (var j = 0; j < xn; j++)
{
Console.Write("x[" + i + "][" + j + "] = ");
x[i][j] = double.Parse(Console.ReadLine(), System.Globalization.CultureInfo.InvariantCulture);
}
}
Console.WriteLine();
foreach (var n in x)
{
foreach (var m in n)
Console.Write((String.Format("{0,8:f2}", m)) + "\t");
Console.WriteLine();
}
Console.WriteLine();
int c = 0; // c - количество элементов с дробной частью, лежащих на главной диагонали
for (int i = 0; i < xn; i++)
{
c += (x[i][i] == Math.Ceiling(x[i][i])) ? 1 : 0;
}
for (var n = 0; n < x.Length; n++)
{
for (var m = 0; m < (x.Length - (n + 1)); m++)
{
x[n][m] = c;
}
}
foreach (var n in x)
{
foreach (var m in n)
Console.Write((String.Format("{0,8:f2}", m)) + "\t");
Console.WriteLine();
}
Console.ReadKey();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment