Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2011, 18:32   #1
tonytihij
Новичок
Джуниор
 
Регистрация: 20.10.2011
Сообщений: 2
По умолчанию одномерный массив

в одномерном массиве состоящем из N вещественных элементов, вычислить:
1)кол-во отрицательных элементов массива
2)сумму модулей элементов массива, расположенных после минимального по модуля элементу

буду безумно благодарен, если с пояснениями.
tonytihij вне форума Ответить с цитированием
Старый 20.10.2011, 19:23   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

tonytihij

в одномерном массиве состоящем из N вещественных элементов, вычислить:
1)кол-во отрицательных элементов массива
2)сумму модулей элементов массива, расположенных после минимального по модуля элементу


Код:
#include <iostream>
#include <iterator>
#include <locale>

#include <algorithm>
#include <functional>
#include <numeric>

#include <stdlib.h>
#include <time.h>

#define MIN -10
#define MAX 10

struct R
{
	float operator()() const
	{
		return ((float) rand() / RAND_MAX) * (MAX - MIN + 1) + MIN;
	}
};

template <typename T>
T sum(T v1, T v2)
{
	return v1 + std::abs(v2);
}

template <typename T>
bool xless(T v1, T v2)
{
	return std::abs(v1) < std::abs(v2);
}

int main()
{
	setlocale(LC_ALL, "");
	srand((unsigned) time(NULL));

	const size_t N = 10;
	float arr[N];

	std::generate_n(arr, N, R());

	typedef std::ostream_iterator<float> O;

	std::copy(arr, arr + N, O(std::cout, " "));
	std::cout << std::endl;


	std::cout << "Less then zero: " << std::count_if(arr, arr + N, std::bind2nd(std::less<float>(), 0.f)) << std::endl;

	float* end = std::min_element(arr, arr + N, &xless<float>);
	std::cout << "Sum: " << std::accumulate(end+1, arr + N, 0.f, &sum<float>) << std::endl;
	
	return 0;
}
пример работы программы: http://codepad.org/OtY8kkxt

буду безумно благодарен, если с пояснениями.

к сожалению, тех-поддержка в бесплатную студень-версию программы не входит :D
Rififi вне форума Ответить с цитированием
Старый 20.10.2011, 19:32   #3
tonytihij
Новичок
Джуниор
 
Регистрация: 20.10.2011
Сообщений: 2
По умолчанию

офигеть!! я этих операторов не знаю и с ними ещё не знаком))) как же я преподу объясню на зачете что это у меня такое :D
tonytihij вне форума Ответить с цитированием
Старый 20.10.2011, 20:29   #4
Алек
Пользователь
 
Регистрация: 16.10.2010
Сообщений: 48
По умолчанию

вот тебе код..а вообще раньше уже такие задчи решались...З.Ы. ты хоть книжку перед сдачей открой и почитай))
Код:
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#define n 10
void main()
{
	float a[n],min,sum=0;
	int i,k=0,t;
	 srand(time(NULL));
	//произвольное заполнение массива...
	for(i=0;i<n;i++)
	{
			if(i%2==0)
			{
				a[i]=rand()%100;
			printf("a[%d]=%.2f\n",i,a[i]);
			}
			else
			{
				a[i]=-1*rand()%100;
			printf("a[%d]=%.2f\n",i,a[i]);

			}
		
	}
	//подсчет отрицательных элементов..
	for(i=0;i<n;i++)
	{
		if(a[i]<0)
			k++;
	}
	min=a[0];
		for(i=0;i<n;i++)
		{
			if(a[i]<min)
			{
				min=a[i];
				t=i;
			}
		}

	


for(i=t;i<n;i++)
{
	sum+=a[i];
}
	
printf("kol. otr. elem: %d\n",k);
printf("min:= %.2f\n",min);
printf("sum:= %.2f\n",sum);
}
Алек вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Одномерный массив strannik23 Паскаль, Turbo Pascal, PascalABC.NET 7 12.04.2011 22:44
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40