Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [а,b] - C (СИ)

Узнай цену своей работы

Формулировка задачи:

в одномерном массиве, состоящем из п вещественных элементов, вычислить: Преобразовать массив таким образом, чтобы сначала располагались все элемен-ты, целая часть которых лежит в интервале [а,Ь], а потом — все остальные. Вот начало:
#include <stdio.h>
#include<stdlib.h>
int main()
{
    const int n=10;
      int a[n]={2,4,7,-5,9,3,1,5,6,1};
 
      int b[n];
      int m=1,l=7,k,i;
      k=0;
     for (i=0; i<n; i++)
 
    if (a[i]>=m && a[i]<=l)
    {b[k]=a[i];k++;}
 for(i=0;i<n; i++)
 if( a[i]<m || a[i]>l)
 {b[k]=a[i];k++;}
 for(i=0;i<n;i++)
 printf("%i  ",b[i]);

system("pause");
  return 0;
}
... заранее спасибо))

Решение задачи: «Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [а,b]»

textual
Листинг программы
#include <stdlib.h>
 
#define N 10
 
void presort(int* pn, int n, int a, int b);
void swap(int& n1, int& n2);
 
int main()
{
    int* A = new int[N];
    for (int q = 0; q < N; q++)
    {
        A[q] = rand() % 9 + 1;
        printf("%d ",A[q]);
    }
 
    printf("\n\n");
 
    int a = 0, b = 0;
    printf("a = "); scanf("%d",&a);
    printf("b = "); scanf("%d",&b);
 
    printf("\n"); presort(A,N,a,b);
    
    for (int z = 0; z < N; z++)
        printf("%d ",A[z]);
    printf("\n");
}
 
void presort(int* pn, int n, int a, int b)
{
    for (int k = 0; k < N; k++)
        for (int i = k+1; i < N; i++)
            if (pn[i] >= a && pn[i] <= b) 
                swap(pn[k],pn[i]);
}
 
void swap(int& n1, int& n2)
{ int _t = n1; n1 = n2; n2 = _t; }

Объяснение кода листинга программы

В этом коде реализована сортировка массива методом разделяй и властвуй. Он сортирует массив по заданному диапазону. Вот список действий:

  1. Сначала программа генерирует случайные значения для каждого элемента массива.
  2. Затем она выводит этот массив.
  3. После этого пользователю предлагается ввести два числа, которые определяют диапазон для сортировки.
  4. Когда пользователь вводит эти числа, программа вызывает функцию presort, которая сортирует массив по этому диапазону.
  5. После сортировки программа выводит отсортированный массив. Код также включает функцию swap, которая меняет местами два элемента массива, и прототип функции presort.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы