Вернуться   Компьютерный форум > Компьютеры > Программы > Программирование
 
 
Опции темы
Старый 11.12.2013, 23:00   #1 (ссылка)
Новичок
 
Регистрация: 11.12.2013
Сообщений: 1
Репутация: 0
По умолчанию Обработка данных в одномерном массиве. Помогите (язык C)

Пожалуйста, помогите с заданием (язык C):

Числовой массив B (вещественный) содержит k элементов. Элементы массива вводится с клавиатуры. Написать подпрограммы создания массива и вывода его на экран. В первом задании требуется написать функцию нахождения максимального значения, а во втором - среднего арифметического указанных в условии элементов (между понимать строго – не включая найденные позиции):

1) max (|b1|,...,|bk|) для |bi|<Y
2) Среднее арифметическое элементов, расположенных между первым и последним положительными элементами

Заранее спасибо!
Nerv0172 вне форума  
Старый 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");
}
Urian вне форума  
Ads
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оцифровка и обработка 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


Текущее время: 07:01. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.