Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
17.04.2015
Размер:
30.21 Кб
Скачать

Московский Государственный Университет Леса

ФЭСТ ВТ-11

Лабораторная работа №7.

Программирование на языках высокого уровня

Тема: “Указатели”

Выполнил студент Борисов А.О.

Проверил Ларионов Н.В.

Москва 2011.

Задание:

В одномерном массиве, состоящем и n вещественных элементов, вычислить:

1)Количество элементов массива, больших C.

2)Произведение элементов массива после максимального по модулю элемента.

Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом все положительные (элементы равные нулю считать положительными).

Листинг:

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <iostream.h>

int overc (int n, int a[]);

int maximum (int n, int a[]);

int summa (int n, int m, int a[]);

void sort (int n, int a[]);

int main ()

{

clrscr();

const n=10, *pn=&n;

int a[n];

int i, *pi=&i;

int k, *pk=&k;

int m, *pm=&m;

int s, *ps=&s;

srand(time(NULL));

for (pi=a; pi<a+n; pi++)

{

*pi=rand()%30-15;

printf ("%i ",*pi);

}

*pk=overc(*pn,a);

*pm=maximum(*pn,a);

*ps=summa(*pn,*pm,a);

printf ("k=%i s=%i\n",*pk,*ps);

sort (*pn,a);

system ("pause");

getch();

return 0;

}

int overc (int n, int a[])

{

int c, *pc=&c;

int k, *pk=&k;

int i, *pi=&i;

printf ("\nvvedite c\n");

scanf ("%i",&c);

*pk=0;

for (pi=a; pi<a+n; pi++)

if (*pi>*pc) (*pk)++;

return (*pk);

}

int maximum (int n, int a[])

{

int max, *pmax=&max;

int m, *pm=&m;

int i, *pi=&i;

int k=0;

*pmax=abs(*a);

for (pi=a; pi<a+n; pi++)

{

k++;

if (abs(*pi)>*pmax)

{

*pmax=abs(*pi);

*pm=k;

}

}

return (*pm);

}

int summa (int n, int m, int a[])

{

long s, *ps=&s;

int j, *pj=&j;

*ps=1;

for (pj=a+m; pj<a+n; pj++)

{

(*ps)*=*pj;

}

return (*ps);

}

void sort (int n, int a[])

{

int b[10];

int i, *pi=&i;

int k, *pk=&k;

*pk=0;

for (pi=a; pi<a+n; pi++)

if (*pi<0)

{

b[*pk]=*pi;

(*pk)++;

}

for (pi=a; pi<a+n; pi++)

if (*pi>=0)

{

b[*pk]=*pi;

(*pk)++;

}

for (pi=b; pi<b+n; pi++)

printf ("%i ",*pi);

}

Соседние файлы в папке Борисов