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