Задание а
Составить блок-схему и программу обработки одномерного массива. Элементы массива заполнить, используя функцию генератора случайных чисел.
Пример. Дан массив А[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 – число нечетных элементов
9. Дан целочисленный массив размера N. Преобразовать его, прибавив к четным числам первый элемент. Первый элемент массива не изменять. Осуществить сдвиг вправо на k позиций, где k – число нечетных элементов
10. Поменять местами минимальный и максимальный элементы массива размера 10. Осуществить сдвиг вправо на k позиций, где k – число элементов, расположенных между его минимальным и максимальным элементами.
11. Дан массив A[N]. Все положительные элементы уменьшить на значение минимального элемента. Осуществить сдвиг вправо на k позиций, где k – число положительных элементов
12. Дан массив A[N]. Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг влево на k позиций, где k – число отрицательных элементов
13. Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами. Осуществить циклический сдвиг элементов массива влево на k позиций, где k – k – число элементов, расположенных между его минимальным и максимальным элементами
14. Дан массив размера N. Осуществить циклический сдвиг элементов массива влево на k позиций, где k – индекс минимального элемента.
15. Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента.
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 – целая часть среднего арифметического значения нечетных элементов массива A[N].
20. Дан массив A[N]. Все отрицательные элементы уменьшить на значение минимального элемента. Осуществить сдвиг вправо на k позиций, где k – число положительных элементов