Если в целочисленной последовательности нет других чисел кроме x, y, z, то упорядочить последовательность по убыванию(невозрастанию).
Решение на C:
#include <stdio.h> #include <stdlib.h> int main() { int count; printf("Количество элементов в последовательности: "); scanf("%d", &count); int i, *input = malloc(count * sizeof(int)), x = -1, y = -1, z = -1; for (i = 0; i < count; i++) { printf("Введи %d элемент: ", i); scanf("%d", &input[i]); // свободны ли места для новых чисел if (x == -1) { x = input[i]; } else if (y == -1) { y = input[i]; } else if (z == -1) { z = input[i]; } // если мест для новых чисел нет if (input[i] != x && input[i] != y && input[i] != z) { printf("В последовательности есть другие числа, кроме x, y, z"); return 0; } } // сортируем int j; for (i = 0; i < count; i++) { for (j = 0; j < count - 1; j++) { if (input[j] < input[j+1]) { int tmp = input[j]; input[j] = input[j+1]; input[j+1] = tmp; } } } // выводим for (i = 0; i < count; i++) { printf("%d ", input[i]); } return 0; }
Решение на Pascal:
var i, j, tmp, count, x, y, z: longint; {так как нет динамических массивов, примем максимальное значение за 1000} input: array [0..1000] of longint; begin write('Количество элементов в последовательности: '); readln(count); x := -1; y := -1; z := -1; for i := 0 to count-1 do begin write('Введи ',i,' элемент: '); readln(input[i]); {свободны ли места для новых чисел} if (x = -1) then x := input[i] else if (y = -1) then y := input[i] else if (z = -1) then z := input[i]; {если мест для новых чисел нет} if ((input[i] <> x) and (input[i] <> y) and (input[i] <> z)) then begin writeln('В последовательности есть другие числа, кроме x, y, z'); exit; end; end; {сортируем} for i := 0 to count-1 do begin for j := 0 to count-2 do begin if (input[j] < input[j+1]) then begin tmp := input[j]; input[j] := input[j+1]; input[j+1] := tmp; end; end; end; // выводим for i := 0 to count-1 do write(input[i], ' '); end.