Другие языки программирования и технологии
методы сортировок на Си
В данной работе надо разработать программу выполняющее следующее действие: 1. Ввод размера массива 2. Ввод исходного массива 3. Обработка массива 4. Вывод получившихся массивов 5. Кол -во элементов в исходных массивов до 20 штук 6. Элементами массивов являються целые цисла 7. Множества в программе не использовать 8. После каждого изменения массивов новое состояние необходимо вывесте на экран 9. Скопировать элементы - элементы из исходного массива добавляються в результирующий массив 10. Перенести элементы- элементы из исходного массива добавляються в результирующий массив,после чего удаляються из исходного Задание: Ввести массив А. В массив В перенести все элементы массива А., имеющий четный индекс,слева от которых расположены элементы с нечетным значением. Массив В отсортировать по возрастанию,используя метод вставок
#include <stdio.h>
#include <stdlib.h>
void Print(int* arr, size_t size)
{
for(size_t i = 0; i < size; i++)
printf( "%d ", *(arr+i) );
printf("\n");
}
void Sort(int* arr, size_t size)
{
int temp;
size_t j;
for (size_t i=0; i < size; i++)
{
temp = arr[ i ];
for ( j = i-1; j >= 0 && arr[ j ] > temp; j--)
arr[ j+1 ] = arr[ j ];
arr[ j+1 ] = temp;
}
}
void main()
{
size_t size_a, size_b = 0;
bool flag = true;
printf("A array size > ");
scanf("%d", &size_a);
if(size_a>20) size_a = 20; //так как размер максимум 20, ставлю лимит
int* arr_a = (int*)malloc(size_a*sizeof(int));
int* arr_b = NULL, *temp = NULL;
printf("Filling A array...\n");
for(size_t i = 0; i < size_a; i++)
{
printf("%d > ",i);
scanf("%d",arr_a + i);
}
Print(arr_a,size_a);
arr_b = (int*)malloc(size_a*sizeof(int));
for(size_t i = 2; i < size_a; i+=2)
{
if( arr_a[ i-1 ] % 2 )
{
arr_b[size_b] = arr_a[ i ];
size_b++;
}
}
if(!size_b)
{
free(arr_a);
free(arr_b);
printf("Nothing to copy...");
return;
}
temp = (int*)realloc(arr_b, size_b*sizeof(int));
if(!temp)
{
free(arr_a);
free(arr_b);
perror("Error occured while rellocating B array");
return;
}
arr_b = temp;
temp = NULL;
Print(arr_b, size_b);
Sort(arr_b, size_b);
Print(arr_b, size_b);
printf("Done...");
free(arr_b);
free(arr_a);
}
#include <stdlib.h>
void Print(int* arr, size_t size)
{
for(size_t i = 0; i < size; i++)
printf( "%d ", *(arr+i) );
printf("\n");
}
void Sort(int* arr, size_t size)
{
int temp;
size_t j;
for (size_t i=0; i < size; i++)
{
temp = arr[ i ];
for ( j = i-1; j >= 0 && arr[ j ] > temp; j--)
arr[ j+1 ] = arr[ j ];
arr[ j+1 ] = temp;
}
}
void main()
{
size_t size_a, size_b = 0;
bool flag = true;
printf("A array size > ");
scanf("%d", &size_a);
if(size_a>20) size_a = 20; //так как размер максимум 20, ставлю лимит
int* arr_a = (int*)malloc(size_a*sizeof(int));
int* arr_b = NULL, *temp = NULL;
printf("Filling A array...\n");
for(size_t i = 0; i < size_a; i++)
{
printf("%d > ",i);
scanf("%d",arr_a + i);
}
Print(arr_a,size_a);
arr_b = (int*)malloc(size_a*sizeof(int));
for(size_t i = 2; i < size_a; i+=2)
{
if( arr_a[ i-1 ] % 2 )
{
arr_b[size_b] = arr_a[ i ];
size_b++;
}
}
if(!size_b)
{
free(arr_a);
free(arr_b);
printf("Nothing to copy...");
return;
}
temp = (int*)realloc(arr_b, size_b*sizeof(int));
if(!temp)
{
free(arr_a);
free(arr_b);
perror("Error occured while rellocating B array");
return;
}
arr_b = temp;
temp = NULL;
Print(arr_b, size_b);
Sort(arr_b, size_b);
Print(arr_b, size_b);
printf("Done...");
free(arr_b);
free(arr_a);
}
и? я прямо бросил все и написал . .за 200р))) )
в личку...
в личку...
Похожие вопросы
- Сортировки, язык Си.
- сортировка массива. какой метод сортировки массива самый быстрый и эффективный?
- Паскаль: пузырьковый метод(сортировка).
- Подскажите, как правильно написать сортировку на СИ++ (два вложенных цикла)...
- Сортировка методом пузырька. Си.
- Помогите с массивом и сортировкой методом пузырька в языке Си! Прогу надо сдать в пятницу срочно, не знаю как начать!
- Сортировка простыми вставками. Язык Си.
- Помогите, пожалуйста, найти ошибку в программе сортировки стека (по убыванию ) на Си.
- Язык СИ. Массивы Ребят, как на Си написать сортировку массива от меньшего к большему?
- c#. Сортировка массива в отдельном методе. Консольное приложение.