Даны числа А1,А2,...,Аn. Получить в порядке возрастания все различные числа, входящие в А1,А2,...,Аn. Алгоритм: #include <stdio.h> #include <stdlib.h> #include <conio.h> #define N 10 //определяем размер массива int main() { clrscr(); randomize(); int Mas[N]; int i,j,tmp; static int n; for(i = 0;i < N;i++) Mas[i]=random(-20)+10; //генератор псевдослучайных чисел (от-10 до 10) printf("\n\nMASSIV: "); for(i = 0;i < N;i++) //выводим на печать элементы массива printf("%5d",Mas[i]); for(i = 0;i < N;i++) //цикл сортировки по возрастанию for(j = 0;j < N-1;j++) /*цикл обмена значени¤ми элементов - если больший элемент находитс¤ впереди меньшего элемента */ if(Mas[j] > Mas[j+1]) //если i-ый элемент больше следующего элемента { tmp=Mas[j+1]; //сохраняем значение следующего элемента в переменной tmp Mas[j+1]=Mas[j]; //присваиваем этому элементу значение предыдущего элемента Mas[j]=tmp; //i-тому элементу присваиваем значение следующего за ним элемента } printf("\n\nSORT MASSIV: "); for(i = 0;i < N;i++) //выводим на печать отсортированный массив printf("%4d",Mas[i]); for(i = 0;i < N;i++) //цикл удалени¤ повторяющихс¤ чисел for(j = 0;j < N-1;j++) if(Mas[j] == Mas[j+1]) //если j-ый элемент равен следующему элементу { for(;j < N;j++) Mas[j]=Mas[j+2]; //удал¤ем оба элемента, сжимаем массив n++; //счетчик удаляемых элементов } printf("\n\n\nNEW MASSIV: "); for(i = 0;i < N-n*2;i++) //выводим на печать массив, состоящий из различных чисел printf("%4d",Mas[i]); getch(); return 0; }
Ключевые слова:
массив, цикл, сортировка, удаление одинаковых элементов
|
|||