Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Рудов / лабораторная работа №7
.docМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА
Факультет электроники и системотехники.
Лабораторная работа № 7
Тема: «Указатели»
Выполнил студент:
Рудов К. А. ВТ-11
Проверил: Ларионов Н.В.
Москва 2012 г.
-
Условия задания: Написать программу в виде указателей.
-
Схема программы:
-
Листинг программы:
#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);
system ("pause");
return 0;}