18.11.2017, 05:52 [+3 UTC]
в нашей команде: 2 266 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
15.11.2017, 20:36

Последний вопрос:
17.11.2017, 17:46

Последний ответ:
17.11.2017, 20:56

Последняя рассылка:
18.11.2017, 05:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
19.01.2011, 18:25 »
lamed
Большое спасибо! Действительно полезный сайт. [вопрос № 181937, ответ № 265512]
21.01.2010, 13:16 »
Верещака Андрей Павлович
Очень подробный, полный и понятный ответ, очень сильно мне помог. Спасибо огромное автору ответа Megaloman И вашему порталу в целом, за возможмость повышать свои знания. [вопрос № 176158, ответ № 258783]
29.12.2011, 14:40 »
Сергей
Большое спасибо!! [вопрос № 184848, ответ № 269380]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 319
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 146
CradleA
Статус: Профессионал
Рейтинг: 66

Перейти к консультации №:
 

Консультация онлайн # 191152
Раздел: • С / С++
Автор вопроса: dimnatvik@ya.ru (Посетитель)
Отправлена: 16.06.2017, 15:35
Поступило ответов: 1

Здравствуйте! У меня возникли сложности с таким вопросом: Помогите решить задачу:
В одномерном массиве, состоящем из М вещественных элементов ,вычислить 1. Номер минимального элемента; 2. Сумму элементов массива, расположенных между первым и вторым отрицательными элементами

Вопрос перенесен из раздела • Информатика
--------

• Отредактировал: Гордиенко Андрей Владимирович (Модератор)
• Дата редактирования: 16.06.2017, 17:50

Состояние: Консультация закрыта

Ответ # 275102 от Лысков Игорь Витальевич (Старший модератор)

Здравствуйте, dimnatvik@ya.ru!
Примерно так...
Вводим число элементов массива М, создаем динамический массив соответствующего размера.
Заполняем случайными числами из диапазона [-50.0:149.99].
Положительных больше, чтобы во второй задаче была чаще ситуация, когда
между первыми отрицательными элементами есть положительные элементы

#include <iostream>
#include <iomanip>
#include <conio.h>
#include <time.h>
 
using namespace std;

int main(void)
{
    int		M;
    int		i, iMin, i1;
	double	dMin;
	double	dSum;

	srand( (unsigned)time( NULL ) );	//инициируем генератор псевдослучайных чисел
    
	cout << "Enter M: ";
	cin >> M;							//Введем М
    double *a = new double[M];			//создадим массив из М вещественных чисел
    for (i = 0; i < M; i++)				//заполним его псевдослучайными числами
	{									//сделаем так, чтобы положительных было больше
        a[i] = (rand()%20000)/100. - 50;//диапазон чисел [-50. : 149.99]
        cout << a[i] << " ";			//выведем
	}

//1										//ищем номер минимального элемента
										//в начале считаем, что минимальный - нулевой элемент
	iMin = 0;							//индекс минимального
	dMin = a[0];						//значение минимального

	for (i=1; i<M; i++)					//по всем остальным элементам массива
	{
		if (a[i] < dMin)				//сравниваем с минимальным
		{								//новый найден
			iMin = i;					//индекс
			dMin = a[i];				//значение
		}
	}									//выведем минимальный и его индекс
										//к индексу добавим 1, чтобы 0 индекс вывелся, как 1
	cout << endl << "min = a[" << iMin+1 << "] = " << dMin << endl;

//2										//найдем сумму чисел между первыми отрицательными числами
	dSum = 0;							//сумма сначала равна 0
										//найдем первый отрицательный элемент
	for (i=0; i<M; i++)					//по всем, начиная с начала
	{
		if (a[i] < 0)
			break;						//если элемент отрицательный - выходим из цикла
	}

	for (i1=++i; i<M; i++)				//запомним индекс следующего элемента, чтобы потом его вывести
	{									//начинаем с текущего индекса до конца
		if (a[i] < 0)
			break;						//если встретился второй отрицательный - выходим
		dSum += a[i];					//иначе - складываем
	}
	if ((i1 == i)||(i == M))			//если стоят рядом два отрицательных числа 
										//или найдено только ОДНО отрицательное число
		cout << "numbers not found" << endl; //то выводим сообщение, что числа не найдены
	else								//иначе выводим какие числа сложили и сумму
		cout << "sum a[" << i1+1 << "]...a[" << i << "] = " << dSum << endl;

	delete[] a;							//освобождаем память динамического массива

    getch();							//ждем нажатие на клавишу
    return 0;
}


Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 17.06.2017, 16:33

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 191152

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 1

= общий = | 16.06.2017, 17:30 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
dimnatvik@ya.ru:

Вам нужно реализовать алгоритм вручную или написать программный код на алгоритмическом языке? Если нужно написать код, то на каком именно языке?

=====
Facta loquuntur.

dimnatvik@ya.ru
Посетитель

ID: 401210

# 2

= общий = | 16.06.2017, 17:48 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Код на алгоритм. Языке
С++

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 3

= общий = | 16.06.2017, 17:49 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
dimnatvik@ya.ru:

Я перенесу консультацию в соответствующий раздел.

=====
Facta loquuntur.

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 4

= общий = | 16.06.2017, 17:51 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Экспертам раздела:

Обратите, пожалуйста, внимание на данную консультацию, перенесённую из другого раздела.

=====
Facta loquuntur.

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13803 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн