Skip to content

Instantly share code, notes, and snippets.

@nickaroot
Created August 31, 2018 00:53
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/fe308eb8e4962072d883b2291e3f1226 to your computer and use it in GitHub Desktop.
Save nickaroot/fe308eb8e4962072d883b2291e3f1226 to your computer and use it in GitHub Desktop.
NCK C# FINAL
class First
{
// Дан одномерный массив Yn.
// Найти минимальный среди положительных элементов
// с четными номерами.
// Удалить каждый третий элемент.
/*
* Тестовые входные данные:
*
* 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() );
Console.WriteLine( "Введите массив: " );
var s = Console.ReadLine().Split( ' ' );
var y = new int[ yn ];
for ( var i = 0; i < yn; i++ )
y[ i ] = Int32.Parse( s[ i ] );
Console.WriteLine();
Console.Write("{ ");
foreach (var x in y)
Console.Write((x) + " ");
Console.Write("}");
Console.WriteLine();
Console.WriteLine();
int offset = 0, min = y[ 0 ];
bool wasRemoved = false;
for (int i = 0; i < yn; i++)
{
min = ( i % 2 == 0 && y[ i ] > 0 && y[ i ] < min ) ? y[ i ] : min;
y[ i - offset ] = y[ i ];
offset += ( ( i + 1 ) % 3 == 0 ) ? 1 : 0;
if ( wasRemoved )
{
Console.WriteLine( "Удален элемент x[" + ( i - 1 ) + "] = " + y[ i - 1 ] );
Console.WriteLine();
wasRemoved = false;
}
wasRemoved = ( ( i + 1 ) % 3 == 0 );
}
var z = new int[ y.Length - offset ];
Array.Copy( y, z, z.Length );
Console.WriteLine( ( min > 0 ) ? "Минимальный среди положительных элементов: " + ( min ) : "Минимальный среди положительных элементов не найден" );
Console.Write( "{ " );
foreach ( var x in z )
Console.Write( ( x ) + " " );
Console.Write( "}" );
Console.ReadKey();
}
}
class Second
{
// Сформировать одномерный массив,
// в который войдут количество целочисленных элементов
// матрицы X (n x m)
// из нечетных строк.
/*
* Тестовые входные данные:
*
* 4
* 2.53 5 63 53.53
* 1.15 1 7 56.465745
* 2.43 2 24.263 6.74
* 2.54 3 75.7457 2
*
*/
public Second()
{
var xn = 0;
var find = false;
Console.Write( "Введите количество строк: " );
xn = Int32.Parse( Console.ReadLine() );
var x = new double[ xn ][];
for ( var i = 0; i < xn; i++ )
{
Console.WriteLine( "Введите элементы массива строки " + ( i ) + ": " );
var s = Console.ReadLine().Split( ' ' );
x[ i ] = new double[ s.Length ];
for ( var j = 0; j < s.Length; j++ )
x[ i ][ j ] = double.Parse( s[ j ], 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();
var y = new int[ x.Length / 2 ];
for ( int j = 0; j < x.Length; j += 2 )
{
var s = 0;
foreach ( var m in x[ j + 1 ] )
s += ( m == Math.Ceiling( m ) ) ? 1 : 0;
find = s != 0;
y[ j / 2 ] = s;
}
if ( find )
{
Console.Write( "{ " );
foreach ( var z in y )
Console.Write( ( z ) + " " );
Console.Write( "}" );
}
else
{
Console.WriteLine( "Целочисленных элементов не найдено" );
}
Console.ReadKey();
}
}
class Third
{
// Все элементы матрицы X (n x n),
// лежащие ниже главной диагонали,
// заменить средним арифметическим отрицательных элементов,
// стоящих в четных столбцах.
/*
* Тестовые входные данные:
*
* 4
* 1 -1 -42 32
* 23 -29 65 -5
* 12 -58 -5 -22
* 23 52 8 9
*
*/
public Third()
{
var xn = 0;
Console.Write( "Введите размер матрицы: " );
xn = Int32.Parse( Console.ReadLine() );
var x = new double[ xn ][];
for ( var i = 0; i < xn; i++ )
{
Console.WriteLine( "Введите элементы массива строки " + ( i ) + ": " );
var s = Console.ReadLine().Split( ' ' );
x[ i ] = new double[ s.Length ];
for ( var j = 0; j < s.Length; j++ )
x[ i ][ j ] = int.Parse( s[ j ] );
}
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;
double sum = 0;
for ( int i = 0; i < xn; i++ )
{
for ( int j = 0; j < xn; j+= 2 )
{
sum += ( x[ i ][ j ] < 0 ) ? x[ i ][ j ] : 0;
c += ( x[ i ][ j ] < 0 ) ? 1 : 0;
}
}
var a = ( c != 0 ) ? sum / c : 0;
for ( var n = 0; n < x.Length; n++ )
for ( var m = 0; m < n; m++ )
x[ n ][ m ] = a;
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