Отсортировать массив с первого элемента до 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);
}


textual

Код к задаче: «Отсортировать массив с первого элемента до P элемента по возрастанию - C (СИ)»

#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");
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

14   голосов, оценка 4.000 из 5

Источник
Похожие ответы