11.12.2013, 23:00 | #1 (ссылка) |
Новичок
Регистрация: 11.12.2013
Сообщений: 1
Репутация: 0
|
Обработка данных в одномерном массиве. Помогите (язык C)
Пожалуйста, помогите с заданием (язык C):
Числовой массив B (вещественный) содержит k элементов. Элементы массива вводится с клавиатуры. Написать подпрограммы создания массива и вывода его на экран. В первом задании требуется написать функцию нахождения максимального значения, а во втором - среднего арифметического указанных в условии элементов (между понимать строго – не включая найденные позиции): 1) max (|b1|,...,|bk|) для |bi|<Y 2) Среднее арифметическое элементов, расположенных между первым и последним положительными элементами Заранее спасибо! |
16.12.2013, 17:11 | #2 (ссылка) |
Новичок
Регистрация: 19.05.2011
Сообщений: 33
Репутация: 1
|
#include <iostream.h>
#include <math.h> void PrintArray(float A[], int size) { cout << endl << "------------------------------" << endl; for (int i = 0; i < size; i++) cout << A[i] << "\t"; cout << endl << "------------------------------" << endl; } float* CreateArray(int size) { float *res = new float [size]; for (int i = 0; i < size; i++) res[i] = 0; return res; } float max(float *A, int size, float Y) { float res = -Y; for (int i = 0; i < size; i++) if ((fabs(A[i]) < Y) && (res < A[i])) res = A[i]; return res; } int PosOfFirstPositiveEl(float *A, int size) { int pos = 0; while (pos < size) { if (A[pos] > 0) return pos; pos++; } } int PosOfLastPositiveEl(float *A, int size) { int pos = size-1; while (pos > 0) { if (A[pos] > 0) return pos; pos--; } } float Average(float *A, int size, int FirstElem, int LastElem) { float res = 0; for (int i = FirstElem+1; i < LastElem; i++) res += A[i]; return (res / (LastElem - FirstElem - 1)); } int main() { float *mas; int k; cout << "Input count of array elements: "; cin >> k; if (k > 0) { mas = CreateArray(k); PrintArray(mas,k); for (int i = 0; i < k; i++) { cout << "mas[" << i << "] = "; cin >> mas[i]; } PrintArray(mas,k); float Y; cout << "Y = "; cin >> Y; cout << "max = " << max(mas, k, Y) << endl; int first = PosOfFirstPositiveEl(mas,k); int last = PosOfLastPositiveEl(mas,k); cout << endl << "first = " << first << "last = " << last << endl; cout << "Average = " << Average(mas, k, first, last) << endl; } system("pause"); } |
Ads | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
оцифровка и обработка vhs | Павел 666 | Мультимедиа | 12 | 27.01.2012 00:03 |
обработка анимашек | natali-tkacheva | Графика | 1 | 05.01.2011 02:19 |
Среднее значение и количество нулевых членов в массиве | novikova1990 | Программирование | 0 | 08.01.2010 21:46 |
Помогите настроить язык в avz. | kolala | Безопасность | 7 | 27.01.2009 01:05 |
Обработка сообщений в Visual C++ | gustav | Программирование | 2 | 02.09.2008 20:16 |