Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [а,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; }
Объяснение кода листинга программы
В этом коде реализована сортировка массива методом разделяй и властвуй. Он сортирует массив по заданному диапазону. Вот список действий:
- Сначала программа генерирует случайные значения для каждого элемента массива.
- Затем она выводит этот массив.
- После этого пользователю предлагается ввести два числа, которые определяют диапазон для сортировки.
- Когда пользователь вводит эти числа, программа вызывает функцию
presort, которая сортирует массив по этому диапазону. - После сортировки программа выводит отсортированный массив.
Код также включает функцию
swap, которая меняет местами два элемента массива, и прототип функцииpresort.