Задачи перестановок в массивах 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Задачи перестановок в массивах



Решение таких задач сводится к выбору алгоритма просмотра массива с целью выполнить требуемые перестановки.

Пример 10. Дан одномерный целочисленный массив, заданный случайными числами на промежутке [-10; 10). Выполните циклический сдвиг элементов с нулевой позиции вправо на одну позицию. То есть должна быть реализована схема перестановок: x[0] -> x[1], x[1] -> x[2],..., x[k-1] -> x[0].

Одним из алгоритмов такого циклического сдвига является следующая последовательность действий. Поместим в буфер последний элемент массива (buf=x[k-1]). Выполним смещение остальных элементов вправо на одну позицию (x[i]=x[i-1]). При этом важен порядок смещения: на освободившееся место последнего элемента перемещается предпоследний, на место предпоследнего – предшествующий ему и т.д. В результате таких перемещений освобождается место нулевого элемента, на которое перемещается элемент из буфера. В данной задаче целесообразно выполнить вывод массива дважды: до и после циклического сдвига.

/*Циклический сдвиг элементов в массиве с нулевой позиции на одну позицию вправо*/#include "stdafx.h"#include <iostream>using namespace std;#include <time.h>//подключение модуля для генератора случайных чисел#define max 100 void gen (int k, int a, int b,int x[max]);//прототип функции генерации массиваvoid out (int k, int x[max]);//прототип функции вывода массиваvoid sdvig (int k, int x[max]);//прототип функции циклического сдвига элементов массива int _tmain(int argc, _TCHAR* argv[]){ int mas[max]; int n;   do { printf("\nВведите количество элементов массива n (n<=100):"); scanf ("%d",&n); } while (n>max); gen(n,-10,10,mas); printf("Вывод сгенерированного массива из %d элементов: \n",n); out(n,mas);   sdvig (n,mas); printf("\nВывод массива после циклического сдвига           элементов: \n"); out(n,mas); system("pause"); return 0;} //Описание функции генерации массиваvoid gen(int k,int a, int b, int x[max]){ int i; srand(time(NULL)*1000);   for (i=0;i<k;i++){ x[i]=rand()%(b-a)+a; }} //Описание функции вывода массива в строкуvoid out (int k,int x[max]){ int i; for (i=0;i<k;i++) printf("%d ",x[i]);} //Описание функции циклического сдвига элементов массиваvoid sdvig(int k,int x[max]){ int i,buf; buf=x[k-1]; for (i=k-1;i>0;i--)     x[i]=x[i-1]; x[0]=buf;}

 

 

 

Задания для выполнения

1. Объявите одномерный вещественный массив, в котором 10 элементов. Выполните генерацию массива, используя закономерность: 0; 0,1; 0,12; 0,123,… Выведите массив на экран в столбик. Оформите генерацию и ввод массива с помощью функций.

2. Объявите одномерный целочисленный массив, в котором 15 элементов. Выполните генерацию массива первыми 15 числами Фибоначчи. Выведите массив на экран в строку. Оформите генерацию и ввод массива с помощью функций.

3. Даны два натуральных числа a и b (a<b). Объявите одномерный целочисленный массив, в котором 10 элементов. Выполните генерацию массива первыми десятью цифрами дробной части частного a/b. Выведите массив на экран в столбец. Оформите генерацию и ввод массива с помощью функций. Например, для a =7, b =23 значениями элементов массива будут числа: 3 0 4 3 4 7 8 2 6 0.

4. Объявите одномерный целочисленный массив, в котором не более 100 элементов. Выполните генерацию массива первыми 100 простыми числами. Выведите массив на экран в строку (или в строки по 10 элементов в каждой). Оформите генерацию и вывод массива с помощью функций.

5. Дан одномерный целочисленный массив из N элементов, заданных с клавиатуры. Найти: количество и процентное соотношение положительных, отрицательных и нулевых элементов.

6. Дан одномерный целочисленный массив из N элементов, заданных случайными числами на промежутке [a; b). Заменить все элементы массива, кратные 3, на сумму их цифр.

7. Дан одномерный вещественный массив из N элементов (N – нечетное), заданных случайными числами на промежутке [a; b). Поменять местами элементы симметричные относительно центрального.

8. Дан одномерный целочисленный массив из N элементов, заданных случайными числами на промежутке [a; b). Поменять местами первый минимальный и последний максимальный элементы.

9. Дан одномерный вещественный массив из N элементов, заданных случайными числами на промежутке [a; b). Выполните циклический сдвиг элементов с n -ой позиции вправо на k позиций.

10. Индивидуальное задание. Дан одномерный целочисленный массив из N элементов, заданных случайными числами на промежутке [a; b). Оформите генерацию, вывод массива с помощью функций.

 

Задание
1. Максимальный элемент в массиве.
2. Минимальный элемент в массиве.
3. Среднее арифметическое элементов в массиве.
4. Среднее геометрическое элементов в массиве.
5. Количество положительных элементов в массиве.
6. Количество отрицательных элементов в массиве.
7. Максимальный элемент в массиве, стоящий на четном месте.
8. Максимальный элемент в массиве, стоящий на нечетном месте.
9. Минимальный элемент в массиве, стоящий на четном месте.
10. Разность минимального и максимального элементов в массиве.
11. Среднее гармоническое элементов списка.
12. Минимальный элемент в массиве, стоящий на нечетном месте.
13. Среднее арифметическое элементов в массиве, стоящих на четных местах.
14. Среднее арифметическое элементов в массиве, стоящих на нечетных местах.
15. Среднее геометрическое элементов в массиве, стоящих на четных местах.
16. Среднее геометрическое элементов в массиве, стоящих на нечетных местах.
17. Определить, каких элементов в массиве больше положительных ил отрицательных.
18. Сумму максимального и минимального элементов в массиве.
19. Произведение элементов списка.
20. Максимальный отрицательный элемент в массиве.
21. Минимальный положительный элемент в массиве.
22. Сумму элементов в массиве, стоящих на четных местах.
23. Разность элементов в массиве, стоящих на нечетных местах.
24. Сумму четных элементов в массиве.
25. Разность нечетных элементов в массиве.
26. Максимальный элемент среди четных элементов в массиве.
27. Минимальный элемент среди четных элементов в массиве.
28. Среднее арифметическое среди четных элементов в массиве.
29. Среднее геометрическое среди четных элементов в массиве.
30. Количество положительных среди четных элементов в массиве.

 



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 241; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.218.62 (0.007 с.)