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

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА

Факультет электроники и системотехники.

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

по программированию на языке высшего уровня С

Тема: «Указатели»

Выполнил студент: Суковатова Л.Н.

ВТ-11

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

Москва 2012 г.

II. 1. Условия задачи: в одномерном массиве, состоящем из n-целочисленных элементов вычислить:

а) минимальный по модулю элемент массива.

б) сумму модулей элементов массива, стоящих после первого элемента, равного 0.

в) преобразовать массив так, чтобы в первой половине шли элементы, которые стоят на четных позициях, а потом — на нечетных.

Оформить в виде указателей.

2. Данные:

а) Исходные: a[i]

б) Рабочие: k

в) Выходные:min, s, b[j]

3. Листинг программы:

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#define n 10

int minimum(int a[])

{

int min,*pmin=&min,*pi;

*pmin=fabs(a[0]);

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

if (fabs(*pi)<*pmin) *pmin=fabs(*pi);

return(*pmin);

}

int summ(int a[])

{

int k,*pk,*pi,sum,*psum=∑

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

if (*pi==0)

{

*pk=*pi;

break;

}

*psum=0;

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

(*psum)+=fabs(*pi);

return(*psum);

}

void sortirovka(int a[],int b[])

{

int *pi,*pj;

pj=b;

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

{*pj=*pi;

pj++;

};

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

{*pj=*pi;

pj++;

}

}

main()

{ int *pi,*pj;

int a[n]={5,-3,0,1,9,-2,4,7,8,0};

int b[n];

int m= minimum(a);

int s=summ(a);

printf("\n");

printf("Min=%i \n",m);

printf("Summa=%i \n",s);

sortirovka(a,b);

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

printf("%i ",*pi);

printf("\n");

printf("Preobrazovanii massiv:\n");

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

printf("%i ",*pj);

printf("\n");

system("pause");

return 0;}

Соседние файлы в папке Суковатова