Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 11.02.2016
Сообщений: 27
1

Найдите отрезок массива, в котором первое число равно последнему, второе - предпоследнему и так далее

11.02.2016, 19:24. Просмотров 2282. Ответов 4

Задание:
Задан числовой массив A(M). Найдите отрезок массива, в котором первое число равно последнему, второе - предпоследнему и так далее. Напечатайте длину максимального отрезка (отрезки могут пересекаться).
Формат входных данных. [M] [1-й элемент массива A] [2-й элемент массива A] и т.д. Элементы массива – целые числа в диапазоне ±1000. M - целое число в диапазоне [2, 20].
Формат выходных данных. [длина отрезка], если такого отрезка нет, то напечатать сообщение Нет такого отрезка.

Вот такой код, но не пойму как удаление делать и эту сортировку

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "stdafx.h" 
#include <math.h> 
#include <conio.h> 
#include <iostream> 
 
using namespace std; 
 
int main() 
{ 
 
setlocale(LC_ALL, "Russian"); 
 
int mass[20];// массив 
int lenght; // Количество элементов в массиве 
int i; // индекс элемента который будем брать для сравнения с другими элементами массива 
int j; // индекс элемента с которым мы сравниваем взятый элемент 
int poss_delete; // позиция с которой будет сдвигаться влево массив на 1 
int L=0;//ДЛИНА 
 
// Ввести длину массива 
 
printf("Введите длину массива\n"); 
scanf("%d", &lenght); 
 
// Проверка введённой длины 
if (lenght<2 || lenght>20) 
{ 
printf("Длина массива за пределами (2;20)"); 
return 0; 
} 
 
// Ввести и проверить элементы массива 
printf("Введите элементы массива:\n"); 
for (int i = 0; i<lenght; i++) 
{ 
scanf("%d", &mass[i]); 
if (mass[i]<-1000 || mass[i]>1000) 
{ 
printf("Значение элементов массива за пределами (-1000;1000)\n"); 
return 0; 
} 
} 
 
 
// Удаление повторяющихся элементов массив 
 
for (i = 0; i<lenght; i++) /// ДЛЯ каждого элемента массива начиная c 0 берём элемент 
{ 
for (j = i - 1; j<lenght; j++)///ДЛЯ каждого взятого берём каждый элемент начиная со следующей позиции от взятого 
{ 
if (mass[i] == mass[j])// ЕСЛИ первоначально взятый элемент и элемент который мы берём для сравнения равны 
{ 
L=L+1;
// Записываем позицию в переменную и сдвигаем массив на эту позицию 
for (poss_delete = j; poss_delete < lenght; poss_delete++) 
{ 
mass[poss_delete] = mass[poss_delete - 1]; 
} 
lenght--; 
j--; // Уменьшаем идекс элемента с которым сравниваем , так при сдвиге массива не проверенный элемент становится на позицию проверенного 
// Уменьшаем идекс элемента с которым сравниваем , так при сдвиге массива не проверенный элемент становится на позицию проверенного 
} 
} 
} 
 
 
 
if(L == 0)
cout << "no solution";
else cout << L;
 
_getch(); 
 
return 0; 
 
 
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2016, 19:24
Ответы с готовыми решениями:

Найти отрезок массива-палиндром, в котором первое число равно последнему, второе предпоследнему и т.д.
Перевертыши. Дан числовой массив А. Найти отрезок массива максимальной длины, в котором первое...

В массиве найти отрезок максимальной длины, в котором первое число равно последнему, второе - предпоследнему и т.д. Напечатать характеристики этого от
Помогите ребят!!!!препод задачи задачи для аттестации,сделал фактически все,кроме этой: &quot;В массиве...

Найдите отрезок максимальной длины, в котором первое число равно последнему, второе — предпоследнему
Задан числовой массив длины N . Найдите отрезок максимальной длины, в котором первое число равно...

Найти отрезок массива максимальной длины, в котором первое число равно последнему, второе предпоследнему и т.д.
Задан числовой массив A. Найти отрезок массива максимальной длины, в котором первое число равно...

4
Модератор
Эксперт С++
9933 / 8449 / 5137
Регистрация: 18.12.2011
Сообщений: 22,643
11.02.2016, 21:23 2
Mister X, Из каких соображений Вы считаете себя вправе использовать одновременно и printf и cout<< ?
0
1 / 1 / 0
Регистрация: 11.02.2016
Сообщений: 27
11.02.2016, 23:20  [ТС] 3
Только начал изучать С++, вот поэтому нубас в этом

Добавлено через 3 минуты
Мб Вы сможете подсказать что доделать\переделать после проверки на возможность выполнение т.е как отсортировать массив и сравнение получившихся отрезков...
0
Эксперт C
24883 / 15442 / 3270
Регистрация: 24.12.2010
Сообщений: 33,325
11.02.2016, 23:59 4
Цитата Сообщение от Mister X Посмотреть сообщение
если такого отрезка нет, то напечатать сообщение Нет такого отрезка.
Такой отрезок есть всегда. Любой, состоящий из одного элемента.

Добавлено через 2 минуты
Цитата Сообщение от zss Посмотреть сообщение
Вы считаете себя вправе
Полностью согласен с тем, что это не камильфо. Но выделенное слово считаю неуместным
1
Модератор
Эксперт С++
9933 / 8449 / 5137
Регистрация: 18.12.2011
Сообщений: 22,643
12.02.2016, 19:42 5
Цитата Сообщение от Байт Посмотреть сообщение
считаю неуместным
Я имел ввиду, что одновременное использование двух разнотипных потоков вывода на одно устройство может привести к непредсказуемому результату. Поэтому и считаю, что программист не вправе это делать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2016, 19:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти отрезок массива максимальной длины , в котором первое число равно последнему
дан числовой массив . Найти отрезок массива максимальной длины , в котором первое число равно...

Найти отрезок массива максимальной длины, в котором первое число равно последнему
массивы..

В массиве найти отрезок максимальной длины, в котором первое число равно последнему
дан массив в массиве а найти отрезок максимальной длины в котором первое число равно последнему...

Числа Люка определяются так: первое число равно 1, второе равно 3, каждое следующее равно сумме двух предыдущих. Состави
Задание Числа Люка определяются так: первое число равно 1, второе равно 3, каждое следующее равно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.