Практические / Отчеты студентов 2011-2012 / ВТ-12 ЛР / Понтеев / 7 лаба / лабораторная работа №7
.docМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА
Факультет электроники и системотехники.
Лабораторная работа № 7
Тема: «Указатели»
Выполнил студент:
Пантеев В.В.
Проверил: Ларионов Н.В.
Москва 2012 г.
в одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) максимальный элемент массива;
2) сумму элементов массива, расположенных до последнего положительного элемента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале
[а,Ь]. Освободившиеся в конце массива элементы заполнить нулями.
#include<stdio.h>
#include<stdlib.h>
#include <math.h>
#define n 10
int sum(int a[]);
int maxi(int a[]);
int cg(int a[]);
main()
{
int a[n]={2,3,5,-1,-6,7,-3,8,1,9};
int m,*pm=&m,ss,*pss=&ss,p,*pp=&p;
*pm=maxi(a);
*pss=sum(a);
printf("summa=%i\n",*pss);
*pp=cg(a);
return 0;
}
int maxi(int a[])
{int max,*ma=&max,*pi;
*ma=a[0];
for( pi=a+1; pi<a+10; pi++)
if (*pi>*ma) *ma=*pi;
printf("max=%i \n",*ma);
return(*ma); }
int sum(int a[])
{ int s=0,*ps=&s,*pi;
int k,*pk=&k;
for( pi=a+10; pi>=a; pi--){
if ( *pi>=0) *pk=*pi;
break;}
for( pi=a; pi<=pk; pi++)
*ps=*ps+(*pi);
return (*ps);}
int cg(int a[])
{ int c, b,*pi;
printf("vvedite c,b\n");
scanf("%i%i",&c,&b);
for( pi=a; pi<a+n; pi++)
if(fabs(*pi)<c||fabs(*pi)>b) *pi=0;
for(pi=a; pi<a+n; pi++)
printf("%i \n",*pi);
return 0;}