Авторський освітній сайт - C#. Робота з масивами

1. Заданий двовимірний масив, кількість рядків відповідає кількості учнів 1 групи (вважати номер рядка ідентифікатором певного учня), 0-й стовпець містить інформацію про зріст учня, 1-й стовпець містить дані про кількість виповнених років учня, 2-стовпець містить вагу учня, 3-й стовпець містить розмір взуття учня. Визначити (не враховуючи повторення):  
а) середній зріст учнів;
б) найвищого учня;
в) хто з учнів носить найбільший розмір взуття;
г) хто з учнів самий легкий;
д) визначити середній вік учнів, визначити;
е) скільки учнів мають вік, більший за середній;
є) у вантажному ліфті вирішили піднятися на 9 поверх всі учні нашої групи, чи зможуть вони це зробити, якщо ліфт має обмеження на вагу «до 400 кг»?
ж) Хто в класі найстарший?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication29
{
class Program
{
static void Main(string[] args)
{
// Масив К містить інформацю про 7 чнів класу
// 0-й стовпець містить інформацію про зріст учня, 
//1-й стовпець містить дані про кількість виповнених років учня, 
//2-стовпець містить вагу учня, 
//3-й стовпець містить розмір взуття учня
//повтори не враховуємо;
int[,] k = new int[7, 4] { { 168, 16, 61, 42 }, { 175, 17, 59, 41 }, { 157, 16, 54, 37 }, { 161, 15, 52, 36 }, { 162, 17, 59, 38 }, { 155, 16, 54, 37 }, { 174, 17, 60, 40 } };
Console.WriteLine("База даних класу");
for (int i = 0; i < 7; i++)
{
for (int j = 0; j < 4; j++) Console.Write("{0,5}", k[i, j]);
Console.WriteLine();
}
Console.WriteLine();
//середній зріст учнів групи
int s = 0;
for (int i = 0; i < 7; i++)
s = s + k[i, 0];
Console.WriteLine("Cереднiй зрiст учнiв групи " + s / 7);
//найвищий учень
int max = 0;
int rist = 0;
for (int i = 0; i < 7; i++)
{
if (k[i, 0] > max)
{
max = k[i, 0];
rist = i;
}
}
Console.Write("Hайвищий учень " + (rist + 1));
Console.WriteLine(" Його зрiст " + max);
Console.WriteLine();
//хто з учнів носить найбільший розмір взуття
int maxv = 0;
int r = 0;
for (int i = 0; i < 7; i++)
{
if (k[i, 3] > maxv)
{
maxv = k[i, 3];
r = i;
}
}
Console.WriteLine("Hайбiльший розмiр взуття {0} носить {1} учень ", maxv, (r + 1));
Console.WriteLine();
// хто з учнів самий легкий
int min = 150;
int n = 0;
for (int i = 0; i < 7; i++)
{
if (k[i, 2] < min)
{
min = k[i, 2];
n = i;
}
}
Console.WriteLine("Hайлегший учень в нашiй групi {0}. Вiн важить {1} ", (n + 1), min);
Console.WriteLine();
// визначити середній вік учнів
int vik = 0;
int svik = 0;
for (int i = 0; i < 7; i++) vik = vik + k[i, 1];
svik = vik / 7;
Console.WriteLine("Середнiй вiк учнiв нашоi групи {0}. ", svik);
Console.WriteLine();
//визначити, скільки учнів мають вік, більший за середній
int ksv = 0;
for (int i = 0; i < 7; i++) if (k[i, 1] > svik) ksv = ksv + 1;
Console.WriteLine("Учнiв, вiк яких бiльший за середнiй {0}. ", ksv);
Console.WriteLine();
//у вантажному ліфті вирішили піднятися на 9 поверх всі учні нашої групи, 
//чи зможуть вони це зробити, якщо ліфт має обмеження на вагу «до 400 кг»
int v = 0;
for (int i = 0; i < 7; i++) v = v + k[i, 2];
if (v < 400) Console.WriteLine("Всi учнi можуть пiднятися у лiфтi на 9 поверх ");
if (v > 400) Console.WriteLine("Всi учнi не можуть пiднятися у лiфтi на 9 поверх ");
Console.WriteLine();
//Хто в класі найстарший
int maxvik = 0;
int rv = 0;
for (int i = 0; i < 7; i++)
{
if (k[i, 1] > maxvik)
{
maxvik = k[i, 1];
rv = i;
}
}
Console.WriteLine("У класi найстарший {0} учень. Йому {1} рокiв ", (rv + 1), maxvik);
Console.WriteLine();
}
}
}

2. Визначити у матриці М(3*6):
а) найменший елемент;                                                                                                   
б) найбільший елемент;
в) суму елементів рядка, в якому розташований елемент з найменшим значенням;
г) суми найбільших значень елементів кожного її рядка;
д) переставити місцями рядки масиву, що містять елемент з найменшим значенням із рядком, в якому міститься елемент з найбільшим значенням.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication30
{
class Program
{
static void Main(string[] args)
{
//матриця М(3*6)
int[,] a = new int[3, 6] { { 12, 10, 15, 9,7,16 }, { 17,12,8,10,4,14 }, { 10,12,3,5,9,6 } };
Console.WriteLine("Дано масив А: ");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 6; j++) Console.Write("{0,5}", a[i, j]);
Console.WriteLine();
}
Console.WriteLine();
//найменший елемент; 
int min = 100;
int m = -1;
int n = -1;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 6; j++)
{
if (a[i, j] < min)
{
min = a[i, j]; 
m = i;
n = j;
}}}
Console.WriteLine("найменший елемент A[{0},{1}]={2}",m,n,min);
Console.WriteLine();
//найбільший елемент;
int max = -100;
int m1 = -1;
int n1 = -1;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 6; j++)
{
if (a[i, j] >max)
{
max = a[i, j];
m1 = i;
n1 = j;
}}}
Console.WriteLine("найбiльший елемент A[{0},{1}]={2}", m1, n1, max);
Console.WriteLine();
// суму елементів рядка, в якому розташований елемент з найменшим значенням; 
// це рядок m
int s=0;
for (int j = 0; j < 6; j++) s = s + a[m,j];
Console.WriteLine("cумa елементiв рядка {0}, в якому розташований елемент ", m);
Console.WriteLine("з найменшим значенням {1}: s={2}", m, min, s);
Console.WriteLine();
// суми найбільших значень елементів кожного її рядка 
int sr = 0;
for (int i = 0; i < 3; i++)
{
int maxr = -100;
{
for (int j = 0; j < 6; j++)
{
if (a[i, j] > maxr) maxr = a[i, j];

}
sr = sr + maxr;
}}
Console.WriteLine("сумa S найбiльших значень елементiв кожного рядка: "+sr);
Console.WriteLine();
// переставити місцями рядки масиву, що містять елемент з найменшим значенням із рядком, 
//в якому міститься елемент з найбільшим значенням
// це рядки m i m1
int p = 0;
for (int j = 0; j < 6; j++)
{
p = a[m, j];
a[m, j] = a[m1, j];
a[m1, j] = p;
}
Console.WriteLine("Змiнений перестановками масив А: ");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 6; j++) Console.Write("{0,5}", a[i, j]);
Console.WriteLine();
}
Console.WriteLine();
}}}

3. Елемент масиву називається «особливим», якщо  він більший за суму інших елементів свого стовпчика.
Визначити «особливі» елементи масиву 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication30
{
class Program
{
static void Main(string[] args)
{
//матриця М(3*5)
int[,] a = new int[3, 5] { { 35, 10, 5, 9,7}, { 7,12,8,45,4}, { 10,38,3,5,9} };
Console.WriteLine("Дано масив А: ");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++) Console.Write("{0,5}", a[i, j]);
Console.WriteLine();
}
Console.WriteLine();
// вияснимо, який елемент більший за суму інших елементів свого стовпчика 
int m = -1;
int n = -1;
for (int j = 0; j < 5; j++)
{
int s = 0;
for (int i = 0; i < 3; i++)
{
s = s + a[i, j];
}
for (int i = 0; i < 3; i++)
{
if (a[i, j] > (s - a[i, j]))
{
m = i;
n = j;
Console.WriteLine("бiльший за суму решти елементiв стовпця елемент A[{0},{1}]={2}", m, n, a[m, n]);
}}}
Console.WriteLine();
}}}

4. Дано масив А[1..5] та масив В[1..7]. Створити масив С, у який спочатку ввійдуть елементи масиву А , а потім елементи масиві В.

int n = 5, m = 7;
int[] a = new int[n];
int[] b = new int[m];
int[] c = new int[n+m];
Random rand = new Random();
for (int i=0; i<n;i++)
{
   a[i] = rand.Next(2, 25);
   listBox1.Items.Add((i+1).ToString()+"   "+a[i].ToString());
 }
 for (int i = 0; i < m; i++)
  {
   b[i] = rand.Next(2, 25);
   listBox2.Items.Add((i + 1).ToString() + "   " + b[i].ToString());
  }
int k=0;
for (int i = 0; i < n; i++)
{
  c[k] = a[i];
  k++;
}
for (int i=0; i<m;i++)
{
 c[k] = b[i];
 k++;
}
for (int i = 0; i < k; i++)
{
  listBox3.Items.Add((i + 1).ToString() + "   " + c[i].ToString());
}

5. 

Дано масиви А[1..5 та В[1..7]. Створити масив С, у який ввiйдуть спочатку додатнi елементи масиву А, а потiм вiдємнi елементи масиву В.

int n = 5, m = 7;
int[] a = new int[n];
int[] b = new int[m];
int[] c = new int[n+m];
Random rand = new Random();
for (int i=0; i<n;i++)
  {
    a[i] = rand.Next(-10, 10);
    listBox1.Items.Add((i+1).ToString()+"   "+a[i].ToString());
   }
for (int i = 0; i < m; i++)
  {
    b[i] = rand.Next(-10, 10);
    listBox2.Items.Add((i + 1).ToString() + "   " + b[i].ToString());
  }
int k=0;
for (int i = 0; i < n; i++)
{
   if (a[i] > 0)
   {
     c[k] = a[i];
     k++;
    }
 }
 for (int i=0; i<m;i++)
  {
    if (b[i] < 0)
      {
        c[k] = b[i];
        k++;
       }
   }
 for (int i = 0; i < k; i++)
 {
   listBox3.Items.Add((i + 1).ToString() + "   " + c[i].ToString());
 }