C программа для эквивалентности порядков
Создайте программу на языке Си, которая проверяет, эквивалентны ли две последовательности положительных чисел порядку.
Две последовательности a и b эквивалентны порядку, если они имеют одинаковое количество элементов и
они содержат менее, чем двумя числами, или, если для всех, где N-длина последовательности
Примеры эквивалентных последовательностей порядка:
7 5 9 13 12 и 4 2 25 33 26
12 и 8
Программа должна принимать две последовательности без разделителя между ними. Если число принятых чисел равно n, то предполагается, что первые n / 2 числа находятся в первой последовательности, а остальные образуют вторую последовательность. Затем программа должна проверить последовательности на эквивалентность порядков и распечатать результат. Можно предположить, что максимальный размер двух последовательностей равен 100. Вы должны использовать 0 или любое отрицательное число, чтобы отметить конец последовательности.
У меня есть код C#, но я хочу, чтобы он был на c
Что я уже пробовал:
Console.Write("input: "); var input = Console.ReadLine(); var nums = input.Split(' ').Select(s => int.Parse(s)).ToList(); if (nums.Count % 2 != 0) { throw new InvalidOperationException("Length must be even."); } var seq1 = nums.GetRange(0, nums.Count / 2); var seq2 = nums.GetRange(nums.Count / 2, nums.Count / 2); Console.WriteLine("seq1: " + string.Join(" ", seq1)); Console.WriteLine("seq2: " + string.Join(" ", seq2)); bool areEquiv = true; for (int i = 0; i < seq1.Count && areEquiv; i++) { for (int j = 0; j < seq2.Count && areEquiv; j++) { if ((seq1[i] <= seq1[j]) != (seq2[i] <= seq2[j])) { areEquiv = false; } } } Console.WriteLine(string.Format("Are {0}order equivalent", areEquiv ? string.Empty : "NOT "));
Mehdi Gholam
Похоже на домашнюю работу.
NotPolitcallyCorrect
Это ваша домашняя работа, а не наша, и мы не являемся службой перевода кода.
Danyal Awan
Спасибо