Лабораторная работа: Работа с функциями в языке программирования Си

#include "izm.c" /*включение файла izm.c с функцией izm */

/*функция*/

izm(a, d); /*аргументы a и b являются указателями */

int *a, *b; /* *a и *b – значения, на которые указывают указатели */

{int c;

c=*a;

*a = *b;

*b=c; /*обменместами */

}

Функция izm получает копию адресов переменных a и b, меняет местами значения, записанные по этим адресам, и передает управление в основную программу. Адреса &a и &b в основной программе не изменялись, а вот значения, на которые они указывают, поменялись местами.

Если в качестве аргумента функции используется имя массива, то ей передается адрес начала массива, а сами элементы не копируются. Функция может изменять элементы массива, сдвигаясь (индексированием) от его начала.

Пример 4. В массиве S поменять местами элементы: первый со вторым, третий с четвертым и т.д. Оформить этот алгоритм в виде функции reverse.

#include <stdio.h>

main()

{int i,j,s[6]; /* описание переменных i,j и массива s целого типа */

for (i=0; i<6; i++)

scanf("%d",&s[i]); /*вводэлементовмассива s*/

reverse(s); /*обращениекфункции reverse*/

for (i=0; i<6; i++)

printf("%d",s[i]); /*вывод полученного массива */

}

include "reverse.c" /*включениефайла reverse.c сфункцией reverse */

/*функция*/

reverse(s)

int s[]; /*описание работающего в подпрограмме массива */

{

int a,i;

for (i=1; i<5; i+=2)

{a=s[i]; s[i]=s[i+1]; s[i+1]=a;} /*обменэлементовместами*/

К-во Просмотров: 231
Бесплатно скачать Лабораторная работа: Работа с функциями в языке программирования Си