Отсортировать массив с первого элемента до P элемента по возрастанию - C (СИ)
Формулировка задачи:
Ребята, выручите.
Задание - есть одномерный массив из 20 элементов. Ее надо отсортировать с первого элемента до P элемента по возрастанию, и с последнего элемента до P1 элемента по убыванию. Значение P и P1 мы вводим в программу сами.
К примеру, матрица А = 1 3 2 5 7 6 1 1 1 1 3 5 6 7 7 0 5 7 6 5.
Число P=6.
Значит я первые 6 элементов сортирую по возрастанию и получаю матрицу А = 1 2 3 5 6 7 1 1 1 1 3 5 6 7 7 0 5 7 6 5.
Число p1=3.
Значит я последние 3 элемента сортирую по убыванию.
Тут А = 1 2 3 5 6 7 1 1 1 1 3 5 6 7 7 0 5 5 6 7.
Это то, что должно получится.
Вот код. Помогите разобраться, пожалуйста.
Листинг программы
- #include <stdio.h>
- int main() {
- const n=20;
- int a[n];
- int p, p1;
- int j,i;
- printf("Vvedi p=");
- scanf("%d",&p);
- printf("Vvedi p1=");
- scanf("%d",&p1);
- for (i = 0; i < n; i = i + 1) {
- a[i][j]=-20 + random(41);
- }
- for (i = 0; i < n; i = i + 1) {
- printf("%d\t",a[i]);
- }
- for (i=0; i<p-1; i++)
- for (j=i; j<p; j++) \\\ p - значение с клавиатуры
- if (a[i]>a[j])
- {
- int tmp=a[i];
- a[i]=a[j];
- a[j]=tmp;
- }
- for (i=0; i<p1-1; i++)
- for (j=i; j<p1; j++) \\\ p1 - значение с клавиатуры
- if (a[i]<a[j])
- {
- int tmp=a[i];
- a[i]=a[j];
- a[j]=tmp;
- }
- for (i = 0; i < n; i = i + 1) { \\\ матрица после сортировки пузырьком
- printf("%d\t",a[i]);
- }
- return(0);
- }
Решение задачи: «Отсортировать массив с первого элемента до P элемента по возрастанию»
textual
Листинг программы
- #include "stdafx.h"
- #include <stdio.h>
- #include <iostream>
- using namespace std;
- int main() {
- const int n = 10;
- int a[n];
- int p, p1;
- int j, i;
- cout << "Vvedi p=";
- cin >> p;
- cout << "Vvedi p1=";
- cin >> p1;
- for (i = 0; i < n; i = i + 1)
- {
- a[i] = rand() % 10 + 1; // диапазон равен от 1 до 3 включительно;
- }
- for (i = 0; i < n; i = i + 1)
- {
- cout << a[i] << " "; // сгенерированная матрица
- }
- cout << "\n";
- for (i = 0; i < p - 1; i++)// p - значение с клавиатуры
- {
- for (j = i; j<p; j++)
- {
- if (a[i] > a[j])
- {
- int tmp = a[i];
- a[i] = a[j];
- a[j] = tmp;
- }
- }
- }
- for (i = 0; i < n; i = i + 1)
- {
- cout << a[i] << " "; // сгенерированная матрица
- }
- cout << "\n";
- for (i = p1; i > 0; i--)// p1 - значение с клавиатуры
- {
- for (j = p1; j > 0; j--)
- {
- if (a[n-i] > a[n-j])
- {
- int tmp = a[n-i];
- a[n-i] = a[n-j];
- a[n-j] = tmp;
- }
- }
- }
- for (i = 0; i < n; i = i + 1)
- {
- cout << a[i] << " "; // матрица после сортировки пузырьком
- }
- system("Pause");
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д