Читайте также:
|
|
/* Функция вычисления суммы положительных элементов массива */
float SumP(float m[], int n) /* или float Sum (float *m, int n) */
/* Вх. параметры: m – указатель на массив чисел,
n – число элементов массива
Значение: s – сумма положительных элементов массива */
{ int i; /* индекс очередного эл-та массива */
float s=0; /* сумма эл-тов массива */
for (i=0; i<n; i++)
if (m[i]>0) s+=m[i];
return s;
}
/*---------------------------------*/
/* Пример вызова функции */
float x[10], y;
…
y= SumP (x, 10);
Пример 22б.
/* Функция вычисления суммы и количества положительных
элементов массива */
void SumP2 (float m[], int n, float *s, int *k)
/* Вх. параметры:
m – указатель на заданный массив,
n – число элементов массива.
Вых. параметры:
*s – сумма положительных элементов массива,
*k – количество положительных элементов */
{ int i;
for (i=0, *s=0, *k=0; i<n; i++)
if (m[i]>0) (*s)+=m[i], (*k)++;
}
/* Пример вызова функции */
float a[20], s;
int k;
…
SumP2 (a, 20, &s, &k);
Пример 22в.
/* Фун-я обнуления отрицательных элементов массива */
void P (float m[ ], int n)
/* Вх. параметры:
m – указатель на заданный массив,
n – число элементов массива.
Вых. параметр::
m – заданный массив */
{ int i;
for (i=0; i<n; i++)
if (m[i]<0) m[i]=0;
}
/* Пример вызова функции */
float a[20];
int i;
…
P (a, 20);
for (i=0; i<20; i++)
printf (“%4.1f ”, a[i]);
/* Фун-я обнуления отрицательных элементов массива
с подсчетом количества измененных элементов */
int P (float m[ ], int n)
/* Вх. параметры:
m – указатель на заданный массив,
n – число элементов массива.
Вых. параметр:
m – заданный массив
Значение: количество замен */
{ int i,k=0;
for (i=0; i<n; i++)
if (m[i]<0) { m[i]=0; k++;}
return k;
}
/* Пример вызова функции */
float a[20];
int k,i;
…
k= P (a, 20);
printf (“\n Количество измененных элементов = %d”,k);
for (i=0; i<20; i++)
printf (“%4.1f ”, a[i]);
Пример 23.
/* Определить, все ли элементы последовательности положительные */
/* Вх. параметры:
p – указатель на заданный массив (последовательность),
n – число элементов.
Значение:
f =1 – все элементы положительные,
f=0 – иначе */
int prov_pol (float p[ ], int n)
{ int i, f;
f=1;
for (i=0; i<n; i++)
if (p[i]<0) f=0;
return f;
}
Пример 24.
/* Функция замены строчных латинских букв на заданный символ */
char * ZamenaBukv (char *str, char sim)
/* Функция возвращает адрес строки str */
{
int i; /* индекс текущего символа строки */
for (i = 0; str[i]; i++)
if (str[i] >= ‘a’ && str[i] <= ‘z’) str[i] = sim;
return str;
}
/* Второй вариант функции замены букв */
char * ZamenaBukv (char *str, char sim)
/* Функция возвращает адрес строки str */
{
char *s; /* указатель на текущий символ строки */
for (s = str; *s!= ‘\0’; s++)
if (*s >= ‘a’ && *s <= ‘z’) *s = sim;
return str;
}
Пример вызова этой функции:
char c, s[81];
gets (s); c=‘*’;
puts (ZamenaBukv (s,c));
Пример 25. Составить подпрограмму ввода целого числа, перед которым возможны пробелы, символы "новой строки" и знак (подобным образом вводится число по формату %d функции scanf).
Тест:
Вход:
-5 +234<Ctrl-z><Enter> <Ctrl-z> - конец файла
Дата добавления: 2015-07-26; просмотров: 55 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пример 20. | | | Классификация параметров подпрограмм |