Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Лаба 5.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <malloc.h>
- #include <conio.h>
- #include <iostream>
- #include <string.h>
- int main(void) {
- setlocale(LC_ALL, "");
- int size; // размер массива
- int *Ar; // указатель на начало массива
- int *Cr; // текущие указатели
- int min0 = 1, max0 = -1;
- char temp; // для сортировки
- int i, j; // для сортировки
- srand(time(NULL));
- size = rand() % 150;
- size += 50;
- printf("Размер массива=%d\n", size); // выделения памяти
- Ar = (int *)malloc(size*sizeof(int));
- printf("Начальный массив: \n");
- for (Cr = Ar; Cr<Ar + size; Cr++)
- {
- *Cr = -100 +rand() % 200;
- printf("%3d ", *Cr);
- }
- putchar('\n');
- Cr = Ar;
- for (i = size - 1; i >= 0 && min0 == 1; i--)
- if (*(Cr + i) >= 0)
- min0 = i;
- for (i = 0; i<min0; i++)
- if (*(Cr + i)<0)
- {
- temp = *(Cr + min0);
- *(Cr + min0) = *(Cr + i);
- *(Cr + i) = temp;
- min0--;
- while (*(Cr + min0)<0)
- min0--;
- }
- for (i = 0; i<size && max0 == -1; i++)
- if (*(Cr + i) <= 0)
- max0 = i;
- for (i = size - 1; i>max0; i--)
- if (*(Cr + i)>0)
- {
- temp = *(Cr + max0);
- *(Cr + max0) = *(Cr + i);
- *(Cr + i) = temp;
- max0++;
- while (*(Cr + max0)>0)
- max0++;
- }
- printf("Массив - результат: \n");
- for (Cr = Ar; Cr<Ar + size; Cr++)
- printf("%3d ", *Cr);
- free(Ar);
- _getch();
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement