Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Void main(void). printf (“Сумма элементов вектора %d ”,summa);




Void main(void)

{

int summa, vect[9]={1,2,3,4,5,6,7,8,9};

summa = sum_vect(vect, 9);

printf (“Сумма элементов вектора %d\n”,summa);

}

 

Оператор return возвращает из блока функции в основную программу значение s.

Имя функции — это глобальная переменная программы, которая содержит адрес блока функции.

Тип функции определяется типом возвращаемого параметра. Если тип не указан, то по умолчанию выбирается тип int. Функция может иметь тип void (не определен), тогда оператор return не используется.

Аргумент — это значение, которое передается из основной или другой функции в качестве исходных данных. Аргументом может быть любой объект данных языка С: переменная, указатель, константа, массив. Функция может иметь переменное число аргументов или не иметь аргументов вообще. В определении и описании функции перед аргументом пишется его тип. Если тип аргумента не указан, то по умолчанию задается тип int. Количество и тип аргументов в описании и вызове должны совпадать, хотя для аргумента может быть определен только тип. В качестве аргумента можно использовать и выражение языка С, но тип значения этого выражения должен совпадать с типом соответствующего аргумента. Правило передачи аргумента следующее: аргумент передается функции по значению, т.е. передается не переменная, а ее копия. Поэтому, если внутри функции значение аргумента изменяется, в вызывающем блоке значение не изменится.

Рассмотрим несколько вариантов организации функций нахождения максимального из двух чисел:

1-й вариант max (int a, int b) // Тип функции отсутствует,

{ // по умолчанию int

int m;

if (a > b) m = a; // Перед else ставится;

else m = b;

return m;

}

2-й вариант max (int a, int b)

{

if (a > b) return a; // Здесь два оператора return

else return b; // Возврат в вызывающий блок

} // Произойдет по первому

// встретившемуся оператору return

3-й вариант max (int a, int b)

{

if (a > b) return a;

return b;

}

4-й вариант max (int a, int b)

{

return (a > b)? a:b; // Тернарная операция

}

 

Функции часто используются при выполнении арифметических операций. В примере 6.2 показаны функции возведения числа в квадрат и определения суммы двух чисел, различные формы записи аргументов.

 

//Пример 6.2.

// Пример организации функций для выполнения арифметических операций

#include <stdio.h>

float sum(float a, float b); // Прототип функции sum()

float sq(float a); // Прототип функции sq()

{

float result, p =3.14;

result = sq(p);

result = sq(p + 2.15 * 5.0);

result = sq(100.0);

if (sq(p) == 100.0) p = sq(p);

switch (sq(p))

{

case 100: printf(“Ответ - 100\n”);

case 10000: printf(“Ответ - 10000\n”);

}

result = sum(sq(p), sq(2.5));

result = sum(sq(p+1.0)+2.0, 6.0);

}

float sum(float a, float b) // Определение функции sum()

{

return(a+b);

}

float sq(float a) // Определение функции sq()

{

return(a*a);

}

В качестве примера можно рассмотреть сортировку элементов линейного массива методом “пузырька”:

 

// Пример 6.3.

//Программа сортировки методом пузырька

#include <stdio.h>

#include <stdlib.h>

#define MAXSIZE 30

void bubble_sort(int array[], int size)

{

int temp,i,j;

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

for(j=0; j<size; j++)

if (array[i] < array[j])

{

temp=array[i];

array[i]=array[j];

array[j]=temp;

}

}




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 385; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.