Читайте также:
|
|
/* Функция обмена значений двух переменных */
void swap (float *a, float *b)
/* a,b - указатели на заданные переменные */
{ float c;
c = *a; *a =*b; *b = c;
}
/*-------------------------------------------------*/
/* Гл. функция – программа тестирования ф-ции swap */
void main ()
{ float a=5.5, b=-2.4,
c=10, d=20;
swap (&a, &b);
swap (&c, &d);
printf (“После обмена a=%.1f, b=%.1f”, a, b);
printf (“\n c=%.0f, d=%.0f\n”,c,d);
}
main: swap:
|
b b
|
Если параметрами функции являются массивы, то передаются всегда адреса массивов. В заголовке функции такие параметры можно объявить как массивы или как указатели. В любом случае имя параметра рассматривается как указатель на заданный при вызове функции массив. Поскольку память под новый массив не выделяется, размер массива можно не задавать (указать пустые квадратные скобки). Обращаться к элементам массива можно как с помощью индексов, так и с помощью операции “*”.
/* Задача 21. Даны две последовательности вещественных чисел. Найти разность максимальных значений этих последовательностей.
Для вычисления максимального значения использовать подпрограмму */
float fmax (float m[], int n)
{ float max;
int i;
max=m[0];
for (i=1; i<n; i++)
if (m[i] > max) max=m[i];
return max;
}
int main()
{ float x[25], y[50];
int n, m, i;
puts(“Vv razmer first posledov”); scanf(“%d”, &n); puts(“Vv first posledov”);
for (i=0; i<n; i++)
scanf(“%f”,&x[i]);
puts(“Vv razmer second posledov”); scanf(“%d”, &m); puts(“Vv second posledov”);
for (i=0; i<m; i++)
scanf(“%f”,&y[i]);
printf (“\n Razn = %.2f\n”, fmax(x,n) – fmax(y,m));
return 0;
}
Дата добавления: 2015-07-26; просмотров: 47 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Область действия переменных | | | Пример 22. |