Задание б
Составить программу
обработки одномерного массива. Доступ
к элементам массива осуществлять с
помощью указателя. Элементы массива
заполнить, используя функцию генератора
случайных чисел.
Пример
Дан массив А[n].Заполнить массив B[n]
элементами массива А[n] , начиная с
последнего и осуществить сдвиг вправо
на К позиций, где К-число положительных
элементов.
#include
<stdlib.h>
#
include <conio.h>
#
include <stdio.h>
#define
n 10
int
main ()
{
int buf,j,pol,i,b[n], *pa,*pb,*p, a[n];
for
(i = 0; i < n; i++)
a[i]=rand()%10-5;
pol=0;
pa=&a[0];
pb=&b[9];
printf
("\n \n Сгенерированный
массив
a[n] a[n] \n");
for
(i=0;i< n;i++)
printf ("%d ",*pa++);
pa=&a[0];
for
(i=0;i< n;i++)
{*pb=*pa;
if (*pa>=0)pol++;
--pb;
++pa;
}
printf
("\n
Число положительных элементов \n
pol=%d",pol);
printf
("\n
\n
вывод массива b[n]
\n");
pb=&b[0];
for
(i=0;i<n;i++)
printf ("%d ",*pb++);
pb=&b[9];
p=&b[0];
for
(i=0;i<pol;i++)
{
buf=*pb;
for(j=0;j<n;j++)
*pb=*(--pb);
*p=buf;
p=&b[0];
pb=&b[9]; }
printf
("\n \n Сдвиг
элементов
массива
b[n] на
%d позиций
\n", pol);
pb=&b[0];
for (i=0;i< n;i++)
printf
("%d ",*pb++);
printf ("\n");
system("PAUSE");
return 0;
}
Варианты задания
Б Варианты
задания Б соответствуют вариантам
задания А данной лабораторной работы.
Контрольные вопросы
-
Каким образом
определяются переменные типа массив?
-
Какие операторы
языка Си используются при обработке
элементов массива?
-
Как осуществляется
доступ к отдельному элементу одномерного
массива с помощью указателя?
-
Каким образом
выводятся элементы массива на экран?
-
Какой результат
унарной
операции &?
-
Какой результат
унарной операции *?
-
Выражение uk=&a[0]
эквивалентно
uk=a?
-
Выражения &a[i]
и a+i
идентичны?
32