Написать программу, которая объединяет два упорядоченных по возрастанию массива в один.
1.Сделать проверку, представляют ли элементы массивов a и b возрастающую последовательность. – реализовать в виде отдельного метода проверки.
2.При слиянии массивов элементы выстраиваются в возрастающем порядке –
сортировка полученного массива не допускается!
Другие языки программирования и технологии
Массивы C#
using System;
namespace example {
class Program {
static void Main(string[] args) {
Random rand = new Random();
int s1 = rand.Next(6, 13);
int[] arr1 = new int[s1];
for (int n = 0; n < s1; n++) arr1[n] = rand.Next(1, 100);
Array.Sort(arr1);
foreach (var a in arr1) Console.Write("{0} ", a);
Console.WriteLine();
Increasing(arr1, s1);
int s2 = rand.Next(6, 13);
int[] arr2 = new int[s2];
for (int n = 0; n < s2; n++) arr2[n] = rand.Next(1, 100);
Array.Sort(arr2);
foreach (var a in arr2) Console.Write("{0} ", a);
Console.WriteLine();
Increasing(arr2, s2);
int[] arr3 = new int[s1 + s2];
int f = 0, t = 0;
bool op1 = false, op2 = false;
for (int n = 0; n < s1 + s2; n++) {
if (op1) {
arr3[n] = arr2[f++]; continue;
}
if (op2) {
arr3[n] = arr2[t++]; continue;
}
if (arr1[f] <= arr2[t]) {
arr3[n] = arr1[f];
if (f < s1) f++;
if (f == s1) op2 = true;
} else {
arr3[n] = arr2[t];
if (t < s2) t++;
if (t == s2) op1 = true;
}
}
foreach (var a in arr3) Console.Write("{0} ", a);
Console.WriteLine();
Increasing(arr3, s1 + s2);
Console.ReadKey();
}
static void Increasing(int[] arr, int size) {
bool flag = true;
for (int n = 1; n < size; n++)
if (arr[n] == arr[n - 1]) {
Console.WriteLine("Массив не является возрастающим");
flag = false;
break;
}
if (flag) Console.WriteLine("Массив является возрастающим");
}
}
}
namespace example {
class Program {
static void Main(string[] args) {
Random rand = new Random();
int s1 = rand.Next(6, 13);
int[] arr1 = new int[s1];
for (int n = 0; n < s1; n++) arr1[n] = rand.Next(1, 100);
Array.Sort(arr1);
foreach (var a in arr1) Console.Write("{0} ", a);
Console.WriteLine();
Increasing(arr1, s1);
int s2 = rand.Next(6, 13);
int[] arr2 = new int[s2];
for (int n = 0; n < s2; n++) arr2[n] = rand.Next(1, 100);
Array.Sort(arr2);
foreach (var a in arr2) Console.Write("{0} ", a);
Console.WriteLine();
Increasing(arr2, s2);
int[] arr3 = new int[s1 + s2];
int f = 0, t = 0;
bool op1 = false, op2 = false;
for (int n = 0; n < s1 + s2; n++) {
if (op1) {
arr3[n] = arr2[f++]; continue;
}
if (op2) {
arr3[n] = arr2[t++]; continue;
}
if (arr1[f] <= arr2[t]) {
arr3[n] = arr1[f];
if (f < s1) f++;
if (f == s1) op2 = true;
} else {
arr3[n] = arr2[t];
if (t < s2) t++;
if (t == s2) op1 = true;
}
}
foreach (var a in arr3) Console.Write("{0} ", a);
Console.WriteLine();
Increasing(arr3, s1 + s2);
Console.ReadKey();
}
static void Increasing(int[] arr, int size) {
bool flag = true;
for (int n = 1; n < size; n++)
if (arr[n] == arr[n - 1]) {
Console.WriteLine("Массив не является возрастающим");
flag = false;
break;
}
if (flag) Console.WriteLine("Массив является возрастающим");
}
}
}
Николай, а где же прикольный namespace???)
Кстати у Вас ошибка:
for (int n = 0; n < s1 + s2; n++) {
if (op1) {
arr3[n] = arr2[f++]; continue; //на этой строчке arr1 а не arr2
}
Кстати у Вас ошибка:
for (int n = 0; n < s1 + s2; n++) {
if (op1) {
arr3[n] = arr2[f++]; continue; //на этой строчке arr1 а не arr2
}
обратись на freelance.ru или freelancer.ru - там профи сидят. за копейки быстро сделают
Похожие вопросы
- помогите массив c#.
- Помогите сделать лабораторную работу по теме "Одномерные массивы" [C++]
- Поиск наибольшего отрицательного элемента массива (c++) и его удаление, написал программу, где то косячек =/
- задачка про массив C++
- Массивы C++
- Помогите с исправить ошибку, массивы, c++builder
- Не пойму как удалить элементы массива (C++).
- Сформировать двумерный массив C++
- Одномерные массивы c++
- многомерные массивы (c++) Как нужно объявить четырехмерный массив с помощью указателей?