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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2014, 11:16   #1
yura1234
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 23
По умолчанию Одномерный массив

Описание задания: Дан одномерный массив целых чисел A(N). Среди всех элементов, кроме первого и последнего, найдите такие, у которых сумма двух соседних элементов наибольшая.
Формат входных данных. [N] [1-й элемент массива A] [2-й элемент массива A] и т.д. Элементы массива – целые числа в диапазоне [0,1000]. N - целое число в диапазоне [4, 20].
Формат выходных данных. [индекс искомого элемента массива A] [пробел] [индекс искомого элемента массива A] и т.д.
Рекомендуемое кол-во циклических операторов (без ввода данных): 2

Не представляю как в этом задании нужно использовать циклические операторы, я вижу решение так: ввод данных и из последнего числа вычесть 1 и сложить с этим числом минус единица, получится наибольшая сумма соседних элементов. Помогите пожалуйста.
yura1234 вне форума Ответить с цитированием
Старый 29.03.2014, 12:21   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Обходите массив с помощью цикла начиная со 2го элемента и заканчивая предпоследним. Для каждого элемента вычисляете сумму предыдущего и следующего элементов. Находите максимальное значение суммы.
Вполне можно уложиться в 2 цикла, хотя можно всё уместить в 1.
Streletz вне форума Ответить с цитированием
Старый 29.03.2014, 19:39   #3
yura1234
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 23
По умолчанию

Правильно ли я выполнил задание?
Код:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>



int _tmain(int argc, _TCHAR* argv[])
{
 int A1, A2, S1, S2, N;
 scanf("%d %d", &A1, &A2);


 if (A1 > 1000 || A1 < 0 || A2 > 1000 || A2 < 0)
	{
		printf("invalid input data");
	    _getch();
	    return 0; 
	}

  
for (N = 0;N <= A2-2; N++)
    {
		S1 = N+1;
	}

for (N = 0;N <= A2-3; N++)
    {
		S2 = N+1;
	}

    printf("%d %d", S1, S2);
	_getch();
}
yura1234 вне форума Ответить с цитированием
Старый 29.03.2014, 21:32   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Код полностью не соответствует заданию. Где сам массив, а также поиск максимума и т.д.?
Вот ввод массива и нахождение максимума суммы соседних элементов:
Код:
        for (int i=0; i<n; i++)
	{
		cout<<"Введите элемент массива"<<endl;
		cin>>massiv[i];
	};
	for (int i=1;i<(n-1);i++)
	{
		summa=massiv[i-1]+massiv[i+1];
		if (summa>summ_max)
		{
			summ_max=summa;
			m_max=i;
		};
	};
Дальше сами.
Streletz вне форума Ответить с цитированием
Старый 30.03.2014, 12:10   #5
yura1234
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 23
По умолчанию

как сделать объявление переменной n от 4 до 20 чтобы далее это число передать для данного массива? я просто краб в программировании((
Код:
for (int i=0; i<n; i++)
	{
		cout<<"Vvedite element massiva"<<endl;
		cin>>massiv[i];
	}
yura1234 вне форума Ответить с цитированием
Старый 30.03.2014, 19:05   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
как сделать объявление переменной n от 4 до 20 чтобы далее это число передать для данного массива?
Согласно заданию, N это число элементов массива и оно задаётся пользователем. Обычный int и не более того.
Проверку N на принадлежность к диапазону можно выполнить с помощью обычного оператора if
yura1234, не хочу Вас обидеть, но Вам лучше почитать хороших книг для начинающих, например Харви Дейтел, Пол Дейтел "Как программировать на С++". После прочтения подобные вопросы, обычно, отпадают сами собой.
Streletz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив X(N,M).Найти номера столбцов массива,все элементы которых четны. Из полученных значений сформировать одномерный массив. darwin1 Паскаль, Turbo Pascal, PascalABC.NET 3 16.03.2014 13:31
Найти одномерный массив элементы которого равны минимальным значениям в строках исходной матрицы и одномерный массив элементы... Richik123 Microsoft Office Excel 1 16.10.2013 15:45
Двумерный массив развернуть в одномерный массив по строкам[QBASIC] TrueStyle777 Помощь студентам 3 29.05.2013 21:56
Дан одномерный массив, сформировать новый массив по заданному правилу {Delphi} Nickolai47 Помощь студентам 5 16.12.2012 14:51
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54