1

Тема: Перегляньте оком профі)))

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

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] mas = new int[4,4];
            Random gh = new Random();

            int i = 0;
            Console.WriteLine("\tГонка буде складатися з 3-х заїздів");
            Console.WriteLine("\t***Перший заїзд***");
            for (int k = 0; k < 3; k ++ )
            {
                mas[0, k] = gh.Next(100, 150);
                i++;
                Console.WriteLine("Швидкість після першого заїзду ");
                Console.WriteLine(i + " машини " + mas[0, k]);
            }
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine();
            Console.WriteLine("\t***Другий заїзд***");
            int y = 0;
            for (int k = 0; k < 3; k++)
            {
                mas[1, k] = gh.Next(110, 160);
                y++;
                Console.WriteLine("Швидкість після другого заїзду ");
                Console.WriteLine(y + " машини " + mas[1, k]);
            }

            Console.ReadKey();
            Console.Clear();
            Console.WriteLine();
            Console.WriteLine("\t***Третій заїзд***");
            int a = 0;
            for (int k = 0; k < 3; k++)
            {
                mas[2, k] = gh.Next(120, 170);
                a++;
                Console.WriteLine("Швидкість після третього заїзду ");
                Console.WriteLine(a + " машини " + mas[2, k]);
            }
            Console.WriteLine();
            int aver1 = (mas[0,0] + mas[1,0] + mas[2,0]) / 3;
            Console.WriteLine("Середня швидкість першої " + aver1);
            int aver2 = (mas[0, 1] + mas[1, 1] + mas[2, 1]) / 3;
            Console.WriteLine("Середня швидкість другої " + aver2);
            int aver3 = (mas[0, 2] + mas[1, 2] + mas[2, 2]) / 3;
            Console.WriteLine("Середня швидкість третьої " + aver3);

            if(aver1 > aver2 && aver1 > aver3 )
            {
                Console.WriteLine("\tПерший переміг!!! - 1 місце");
                if (aver2 > aver3) Console.WriteLine("\t2 машина - 2 місце");
                else if (aver2 < aver3) Console.WriteLine("\t2 машина - 3 місце");
                if (aver3 > aver2) Console.WriteLine("\t3 машина - 2 місце");
                else if (aver3 < aver2) Console.WriteLine("\t3 машина - 3 місце");
            }
            else if (aver2 > aver1 && aver2 > aver3)
            {
                Console.WriteLine("\tДругий переміг!!! - 1 місце");
                if (aver1 > aver3) Console.WriteLine("\t1 машина - 2 місце");
                if (aver3 > aver1) Console.WriteLine("\t3 машина - 2 місце");
                else if (aver1 < aver3) Console.WriteLine("\t1 машина - 3 місце");
                else if (aver3 < aver1) Console.WriteLine("\t3 машина - 3 місце");
            }
            else if (aver3 > aver1 && aver3 > aver2)
            {
                Console.WriteLine("\tТретій переміг!!! - 1 місце");
                if (aver1 > aver2) Console.WriteLine("\t1 машина - 2 місце");
                if (aver2 > aver1) Console.WriteLine("\t2 машина - 2 місце");
                else if (aver1 < aver2) Console.WriteLine("\t1 машина - 3 місце");
                else if (aver2 < aver1) Console.WriteLine("\t2 машина - 3 місце");
            }
            Console.ReadLine();
        }
    }
}

Як можна більш гарним кодом написати цю прогу? І як зробит, якщо середні швидкості відразу одинакові?
Всим дякую і гарного дня!)))

Оригінал
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] mas = new int[4,4];
            Random gh = new Random();

            int i = 0;
            Console.WriteLine("\tГонка будет состоять из 3 заездов");
            Console.WriteLine("\t***Первый заезд***");
            for (int k = 0; k < 3; k ++ )
            {
                mas[0, k] = gh.Next(100, 150);
                i++;
                Console.WriteLine("Скорость после перервого заезда ");
                Console.WriteLine(i + " машины " + mas[0, k]);
            }
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine();
            Console.WriteLine("\t***Второй заезд***");
            int y = 0;
            for (int k = 0; k < 3; k++)
            {
                mas[1, k] = gh.Next(110, 160);
                y++;
                Console.WriteLine("Скорость после второго заезда ");
                Console.WriteLine(y + " машины " + mas[1, k]);
            }

            Console.ReadKey();
            Console.Clear();
            Console.WriteLine();
            Console.WriteLine("\t***Третий заезд***");
            int a = 0;
            for (int k = 0; k < 3; k++)
            {
                mas[2, k] = gh.Next(120, 170);
                a++;
                Console.WriteLine("Скорость после третьего заезда ");
                Console.WriteLine(a + " машины " + mas[2, k]);
            }
            Console.WriteLine();
          int aver1 = (mas[0,0] + mas[1,0] + mas[2,0]) / 3;
          Console.WriteLine("Средняя скорость первой " + aver1);
          int aver2 = (mas[0, 1] + mas[1, 1] + mas[2, 1]) / 3;
          Console.WriteLine("Средняя скорость второй " + aver2);
          int aver3 = (mas[0, 2] + mas[1, 2] + mas[2, 2]) / 3;
          Console.WriteLine("Средняя скорость третей " + aver3);

        

            if(aver1 > aver2 && aver1 > aver3 )
            {
                Console.WriteLine("\tПервый победил!!! - 1 место");
                if (aver2 > aver3) Console.WriteLine("\t2 машина - 2 место");
                else if (aver2 < aver3) Console.WriteLine("\t2 машина - 3 место");
                if (aver3 > aver2) Console.WriteLine("\t3 машина - 2 место");
                else if (aver3 < aver2) Console.WriteLine("\t3 машина - 3 место");
                
            }
           
           else if (aver2 > aver1 && aver2 > aver3)
            {
                Console.WriteLine("\tВторой победил!!! - 1 место");
                if (aver1 > aver3) Console.WriteLine("\t1 машина - 2 место");
                if (aver3 > aver1) Console.WriteLine("\t3 машина - 2 место");
                else if (aver1 < aver3) Console.WriteLine("\t1 машина - 3 место");
                else if (aver3 < aver1) Console.WriteLine("\t3 машина - 3 место");
            }

            else if (aver3 > aver1 && aver3 > aver2)
            {
                Console.WriteLine("\tТретий победил!!! - 1 место");
                if (aver1 > aver2) Console.WriteLine("\t1 машина - 2 место");
                if (aver2 > aver1) Console.WriteLine("\t2 машина - 2 место");
                else if (aver1 < aver2) Console.WriteLine("\t1 машина - 3 место");
                else if (aver2 < aver1) Console.WriteLine("\t2 машина - 3 место");
            }

                Console.ReadLine();

        }
    }
}

2 Востаннє редагувалося FakiNyan (16.03.2018 10:42:01)

Re: Перегляньте оком профі)))

як мінімум - замінити московитський текст, вже буде в рази гарніше

Подякували: taburyak, koala, leofun013

3 Востаннє редагувалося taburyak (16.03.2018 13:08:45)

Re: Перегляньте оком профі)))

FakiNyan написав:

як мінімум - замінити московитський текст, вже буде в рази гарніше

Я б теж посоромився сюди, хоч і в камЄнтах, пхати московську.

4

Re: Перегляньте оком профі)))

taburyak написав:
FakiNyan написав:

як мінімум - замінити московитський текст, вже буде в рази гарніше

Я б теж посоромився сюди, хоч і в камЄнтах, пхати московську.

а то ж не камєнти, це він інтерфейси такі робить. Мабуть, на московитів працює

Подякували: koala1

5 Востаннє редагувалося koala (16.03.2018 13:32:08)

Re: Перегляньте оком профі)))

Якщо код повторюється більше двох разів, його треба узагальнювати. У вас тут дуже проситься взяти в цикл заїзди (проголошення заїздів - "Перший заїзд" і т.д. - в окремий масив), а середні - aver - просто в масив, а потім його відсортувати. Ну і обчислення середніх - в цикли і функції.
І звісно щось із мовою робіть.

Подякували: leofun011