Задание А.

Составить блок-схему и программу обработки одномерного массива. Элементы массива заполнить, используя функцию генератора случайных чисел.

Пример. Дан массив А[n].Заполнить массив B[n]элементами массива А[n], начиная с последнего и осуществить циклический сдвиг вправо на К позиций, где К-число положительных элементов.

На рисунке 2.4.1 приведена блок-схема решения задания

 

Рисунок 2.4.1 -Блок-схема решения задания

 

Программа может иметь следующий вид:

#include <stdlib.h>

# include <conio.h>

# include <stdio.h>

#define n 10

int main ()

{ int buf,j,pol,i,b[n], a[n];

for (i = 0; i < n; i++)

a[i]=rand()%10-5;

pol=0;

printf ("\n \n Сгенерированный массив a[n] \n");

for (i=0;i< n;i++)

printf ("%d ",a[i]);

j=n-1;

for (i=0;i< n;i++)

{b[j]=a[i];

j=j-1;

if (a[i]>=0)pol++;}

printf ("\n Число положительных элементов \n pol=%d",pol);

printf ("\n \n вывод массива b[n] \n");

for (i=0;i< n;i++)

printf ("%d ",b[i]);

for (i=0;i<pol;i++)

{ buf=b[n-1];

for(j=n-1;j>0;j--)

b[j]=b[j-1];

b[0]=buf; }

printf ("\n \n Сдвиг элементов массива b[n] на %d позиций \n", pol);

for (i=0;i< n;i++)

printf ("%d ",b[i]);

printf ("\n");

system("PAUSE");

return 0;}

 

Результат выполнения программы:

 

Сгенерированный массив a[n]

1 2 3 -4 -5 -1 -2 -3 -7 9

Число положительных элементов

pol=4

вывод массива b[n]

9 -7 -3 -2 -1 -5 -4 3 2 1

Сдвиг элементов массива b[n] на 4 позиций

-4 3 2 1 9 -7 -3 -2 -1 -5

Варианты задания А

При выполнении задания элементы массива генерировать с помощью генератора случайных чисел.

1. Дан массив A[N].Заполнить массив В[N]элементами массива A[N]следующим образом: вначале заполнить элементами с четными индексами, а затем — с нечетными. Осуществить циклический сдвиг вправо на k позиций, где k – число положительных элементов

2. Дан массив A[N].Заполнить массив В[N]элементами массива A[N]следующим образом: вначале заполнить элементами с |нечетными индексами, а затем —с четными. Осуществить циклический сдвиг вправо на k позиций, где k– число отрицательных элементов

3. Дан массив A[N].Заполнить массив В[N]элементами массива A[N],которые удовлетворяют двойному неравенству: A[1] < A[i] < A[10].Незаполненные элементы массива В[N]заполнить оставшимися элементами массива A[N].Осуществить циклический сдвиг влево на k позиций, где k– число оставшихся элементов массива A[N].

4. Дан массив A[N].Заполнить массив В[N]элементами массива A[N],которые удовлетворяют двойному неравенству: A[1] < A[i]или A[i] < A[10].Незаполненные элементы массиваВ[N]заполнить оставшимися элементами массива A[N].Осуществить циклический сдвиг вправо на k позиций, где k – число оставшихся элементов массива A[N].

5. Дан целочисленный массив размера N. Преобразовать его, прибавив к четным числам первый элемент. Первый элементы массива не изменять. Осуществить циклический сдвиг вправо на k позиций, где k – число четных элементов

6. Дан целочисленный массив размера N.Преобразовать его, прибавив к нечетным числам первый элемент. Первый элемент массива не изменять. Осуществить циклический сдвиг вправо на k позиций, где k – число четных элементов

7. Дан целочисленный массив размера N.Преобразовать его, прибавив к четным числам последний элемент. Последний элемент массива не изменять. Осуществить циклический сдвиг влево на k позиций, где k – число нечетных элементов

8. Дан целочисленный массив размера N.Преобразовать его, прибавив к четным числам первый элемент. Первый элемент массива не изменять. Осуществить циклический сдвиг вправо на k позиций, где k– число нечетных элементов

9. Поменять местами минимальный и максимальный элементы массива размера 10. Осуществить циклический сдвиг вправо на k позиций, где k – число элементов, расположенных между его минимальным и максимальным элементами.

10. Дан массив A[N].Все положительные элементы уменьшить на значение минимального элемента. Осуществить циклический сдвиг вправо на k позиций, где k – число положительных элементов

11. Дан массив A[N]. Все отрицательные элементы увеличить на значение максимального элемента. Осуществить циклический сдвиг влево на k позиций, где k – число отрицательных элементов

12. Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами. Осуществить циклический сдвиг элементов массива влево на kпозиций, где k – число элементов, расположенных между его минимальным и максимальным элементами

13. Дан массив размера N.Осуществить циклический сдвиг элементов массива влево на k позиций, где k– индекс минимального элемента.

14. Дан массив размера N.Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента.

15. Дан массив A[N].Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – целая часть среднего арифметического значения положительных элементов массива A[N].

16. Дан массив A[N].Осуществить циклический сдвиг элементов массива вправо на kпозиций, где k– целая часть среднего арифметического значения отрицательных элементов массива A[N].

17. Дан массив A[N].Осуществить циклический сдвиг элементов массива вправо наkпозиций, где k – целая часть среднего арифметического значения четных элементов массива A[N].

18. Дан массив A[N].Осуществить циклический сдвиг элементов массива вправо на kпозиций, где k – целая часть среднего арифметического значения нечетных элементов массива A[N].

19. Дан массив A[N].Все отрицательные элементы уменьшить на значение минимального элемента. Осуществить циклический сдвиг вправо на kпозиций, где k– число положительных элементов.