elsemTim

3.8

Apr 23rd, 2017
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.91 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Zadacha3_8
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             //Задача 3.8
  11.             int tmp;
  12.             //
  13.             int countArrayA;
  14.             Console.Write("Введите длину массива А: ");
  15.             countArrayA = Convert.ToInt32(Console.ReadLine());
  16.             int[] arrayA = new int[countArrayA];
  17.             //Вводим данные для массива А
  18.             for (int i = 0; i < countArrayA; i++)
  19.             {
  20.                 Console.Write("Введите значение для эл. [" + i + "]: ");
  21.                 arrayA[i] = Convert.ToInt32(Console.ReadLine());
  22.             }
  23.             //Выводим массив А
  24.             Console.Write("Массив А: ");
  25.             for (int i = 0; i < countArrayA; i++)
  26.             {
  27.                 Console.Write(arrayA[i] + " ");
  28.             }
  29.             //Сортируем массив А
  30.             for (int i = 0; i < countArrayA; i++)
  31.             {
  32.                 for (int j = 0; j < countArrayA - i -1; j++)
  33.                 {
  34.                     if(arrayA[j]>arrayA[j+1])
  35.                     {
  36.                         tmp = arrayA[j];
  37.                         arrayA[j] = arrayA[j + 1];
  38.                         arrayA[j + 1] = tmp;
  39.                     }
  40.                 }
  41.             }
  42.             //Выводим отсорт. массив А
  43.             Console.Write("\n"+"Отсорт. массив А: ");
  44.             for (int i = 0; i < countArrayA; i++)
  45.             {
  46.                 Console.Write(arrayA[i] + " ");
  47.             }
  48.  
  49.  
  50.  
  51.             int countArrayB;
  52.             Console.Write("\n"+"Введите длину массива B: ");
  53.             countArrayB = Convert.ToInt32(Console.ReadLine());
  54.             int[] arrayB = new int[countArrayB];
  55.             //Вводим данные для массива В
  56.             for (int i = 0; i < countArrayB; i++)
  57.             {
  58.                 Console.Write("Введите значение для эл. [" + i + "]: ");
  59.                 arrayB[i] = Convert.ToInt32(Console.ReadLine());
  60.             }
  61.             //Выводим данные массива B
  62.             Console.Write("Массив B: ");
  63.             for (int i = 0; i < countArrayB; i++)
  64.             {
  65.                 Console.Write(arrayB[i] + " ");
  66.             }
  67.             //Сортируем массив В
  68.             for (int i = 0; i < countArrayB; i++)
  69.             {
  70.                 for (int j = 0; j < countArrayB - i - 1; j++)
  71.                 {
  72.                     if (arrayB[j] > arrayB[j + 1])
  73.                     {
  74.                         tmp = arrayB[j];
  75.                         arrayB[j] = arrayB[j + 1];
  76.                         arrayB[j + 1] = tmp;
  77.                     }
  78.                 }
  79.             }
  80.             //Выводим отсорт. массив В
  81.             Console.Write("\n"+"Отсорт. массив В: ");
  82.             for (int i = 0; i < countArrayB; i++)
  83.             {
  84.                 Console.Write(arrayB[i] + " ");
  85.             }
  86.  
  87.             int[] arrayC = new int[countArrayA + countArrayB];
  88.  
  89.             int ia = 0;
  90.             int ib = 0;
  91.             int ic = 0;
  92.             while ((ia < arrayA.Length) && (ib < arrayB.Length))
  93.             {
  94.                 if (arrayA[ia] < arrayB[ib])
  95.                 {
  96.                     arrayC[ic] = arrayA[ia];
  97.  
  98.                     do
  99.                     {
  100.                         ia++;
  101.                     } while ((ia < arrayA.Length) && (arrayA[ia] == arrayA[ia - 1]));
  102.                 }
  103.                 else if (arrayB[ib] < arrayA[ia])
  104.                 {
  105.                     arrayC[ic] = arrayB[ib];
  106.  
  107.                     do
  108.                     {
  109.                         ib++;
  110.                     } while ((ib < arrayB.Length) && (arrayB[ib] == arrayB[ib - 1]));
  111.                 }
  112.                 else
  113.                 {
  114.                     arrayC[ic] = arrayA[ia];
  115.                     do
  116.                     {
  117.                         ia++;
  118.                     } while ((ia < arrayA.Length) && (arrayA[ia] == arrayA[ia - 1]));
  119.  
  120.                     do
  121.                     {
  122.                         ib++;
  123.                     } while ((ib < arrayB.Length) && (arrayB[ib] == arrayB[ib - 1]));
  124.                 }
  125.  
  126.                 ic++;
  127.             }
  128.  
  129.             while (ia < arrayA.Length)
  130.             {
  131.                 arrayC[ic] = arrayA[ia++];
  132.                 ic++;
  133.             }
  134.             while (ib < arrayB.Length)
  135.             {
  136.                 arrayC[ic] = arrayB[ib++];
  137.                 ic++;
  138.             }
  139.  
  140.             Console.WriteLine("Объединение А и В:");
  141.             for (int i = 0; i < ic; i++)
  142.             {
  143.                 Console.Write("{0} ", arrayC[i]);
  144.             }
  145.             Console.Read();
  146.         }
  147.     }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment