Задание А.
Составить блок-схему и программу обработки одномерного массива. Элементы массива заполнить, используя функцию генератора случайных чисел.
Пример. Дан массив А[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– число положительных элементов.