Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 08.05.2012
Сообщений: 3

Дана последовательность целых чисел. Получить новую последовательность.

08.05.2012, 14:44. Показов 2596. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачу!
Дана последовательность целых чисел a1, a2, …, an (n<=40). Получить новую последовательность, выбросив из исходной элемент со значением max(a1,a2,…,an). Определить номера исключенных элементов.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.05.2012, 14:44
Ответы с готовыми решениями:

Дана последовательность из n вещественных чисел. Найти значение последнего отрицательного элемента.
Помогите решить задачу на Borland C++ Builder Дана последовательность из n вещественных чисел. Найти значение последнего отрицательного...

Дана непустая последовательность различных натуральных чисел, за которой следует 0. Оп-ределить наименьшее положительное в последовательности
void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString S; int n,min,m; S=Edit1-&gt;Text+&quot;,&quot;; n=S.Pos(&quot;,&quot;); ...

Дана последовательность действительных чисел a1,a2,a3,…,an. Заменить все её члены, большие данного Z, этим числом. Подсчитать количество замен.
Когда запускаю в .exe вроде работает норм, а в компиляторе ругается на Button1 на последнюю строку Код на c++ Условие такое: Дана...

12
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
08.05.2012, 16:33
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 #define N 40
 #include <iostream.h>
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
int max,*x=new int[N];
      for (size_t i=0;i<N-1;++i) //ищем макс
                 { if (x[i] > x[i+1])
                 max=x[i];
                 }
      for (size_t u=0; u<N;++u)
      {
       if (x[u]==max)
       cout<<u<<" element";
      }
           int z; //задержку на вывод делаем
      cin>>z;
 
    return 0;
}
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
08.05.2012, 17:51
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
int x[40], maxs = 0, kol=0;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
randomize();
   for (int i=0; i<40; i++)         //заполняем масив
   {
      x[i]=rand();
      Memo1->Lines->Add(IntToStr(x[i]));
   }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  for (int i=0; i<40; i++)                //ищем максимальное число
        if (x[i]>maxs) maxs=x[i];
  Edit1->Text = IntToStr(maxs);
 
  for (int i=0; i<40; i++)            //удаляем из масива максимальное число
        if (x[i] == maxs)
        {
           kol++;
           for (i;i<40;i++)
                x[i] = x[i+1];
        }
  for (int i=0; i<40-kol; i++)        //выводим новый масив
        Memo2->Lines->Add(IntToStr(x[i]));
 
}
Вложения
Тип файла: rar test.rar (5.3 Кб, 6 просмотров)
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
08.05.2012, 18:04
Цитата Сообщение от Drygba Посмотреть сообщение
for (int i=0; i<40; i++) //удаляем из масива максимальное число
if (x[i] == maxs)
{ kol++; for (i;i<40;i++)
x[i] = x[i+1];
}
это как работает? получается массив сдвигается влево, а не теряет максимального элемента?
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
08.05.2012, 18:06
Цитата Сообщение от Sor Посмотреть сообщение
это как работает? получается массив сдвигается влево, а не теряет максимального элемента?
сдвиг происходит
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
08.05.2012, 18:07
Цитата Сообщение от Drygba Посмотреть сообщение
for (int i=0; i<40-kol; i++) //выводим новый масив Memo2->Lines->Add(IntToStr(x[i]));
это получается массив без последних kol элементов?

Добавлено через 58 секунд
Drygba, сдвиг происходит, но не факт, что выбрасывается именно максимальный элемент ведь
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
08.05.2012, 18:20
Цитата Сообщение от Sor Посмотреть сообщение
сдвиг происходит, но не факт, что выбрасывается именно максимальный элемент ведь
почему? в максе находится максимальный элемент массива, если находим в массиве число соответствующее максу то на его место сдвигаем масив

Цитата Сообщение от Sor Посмотреть сообщение
for (int i=0; i<40-kol; i++) //выводим новый масив
это получается массив без последних kol элементов?
так как произошел сдвиг (удалились максимальные числа), в массиве меньше элементов - поэтому и цикл меньше на количество максимальных элементов

Добавлено через 6 минут
так по моему правильней:
C++
1
2
3
4
5
6
7
8
9
10
int n=40;
for (int i=0; i<n; i++)            //удаляем из масива максимальное число
        if (x[i] == maxs)
        {
           kol++;
           for (i;i<n;i++)
                x[i] = x[i+1];
            n--;
            i--; 
        }
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
08.05.2012, 18:20
Цитата Сообщение от Drygba Посмотреть сообщение
for (int i=0; i<40; i++) //удаляем из масива максимальное число
if (x[i] == maxs)
{ kol++; for (i;i<40;i++)
x[i] = x[i+1]; }
Допустим x[3]=max. Kol=1 становится. начинается цикл: x[0]=x[1] x[1]=x[2] x[2]=x[3] и т.д. x[0] пропадает из массива, а x[3] остается.
или не так?
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
08.05.2012, 18:30
Цитата Сообщение от Sor Посмотреть сообщение
Допустим x[3]=max. Kol=1 становится. начинается цикл: x[0]=x[1] x[1]=x[2] x[2]=x[3] и т.д. x[0] пропадает из массива, а x[3] остается.
или не так?
не понял честно говоря как это
C++
1
2
3
4
5
6
7
8
for (int i=0; i<40; i++) //начинается цикл проверки массива
if (x[i] == maxs) //если найден элемент массива соответствующий maxs
{ 
  kol++; // счетчик найденных максимальных чисел, если вдруг их несколько
  for (i;i<40;i++) // новый цикл для смещения массива на место найденного элемента
  x[i] = x[i+1]; // смещаем массив , после смещения возвращаемся к первому пункту
  
}
Добавлено через 3 минуты
допустим массив "Х" из 5 элементов = 1,2,3,4,5
ищем число 2 (элемент X[1])
получается
X[0] остается на месте
Х[1] (найденное число) = X[2]
X[2] = X[3]
X[3] = X[4]
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
08.05.2012, 18:38
Цитата Сообщение от Drygba Посмотреть сообщение
for (i;i<40;i++) // новый цикл для смещения массива на место найденного элемента
x[i] = x[i+1]; // смещаем массив , после смещения возвращаемся к первому пункту
в этом то и вопрос у меня. новый цикл же начинается с 0, т.е. с 0го элемента массива, а не с того который максимальный. получается уходит не максимальный элемент, а нулевой?


C++
1
2
3
4
5
6
7
8
int s=-1;
for (size_t i=0;i<40;++i)
s++;
if (x[i]==maxs)
   {kol++;
    for (int i=s; i<40;++i)
    x[i]=x[i+1];
    }
мой вариант

Добавлено через 1 минуту
Цитата Сообщение от Drygba Посмотреть сообщение
for (i;i<40;i++)
если нет инициализации то это I имеет тоже значение что и в цикле выше?
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
08.05.2012, 18:49
Цитата Сообщение от Sor Посмотреть сообщение
если нет инициализации то это I имеет тоже значение что и в цикле выше?
угу, тут у меня и ошибка. надо было во втором цикле не через i идти, а через другую переменную которой присваивается i.

Цитата Сообщение от Sor Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
{
int s=-1;
for (size_t i=0;i<40;++i)
s++;
if (x[i]==maxs)
   {kol++;
    for (int i=s; i<40;++i)
    x[i]=x[i+1];
    } 
}
вы начинаете сдвиг массива с нулевого элемента, смысл?

мой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int n=40;
 
 
  for (int i=0; i<n; i++)            //удаляем из масива максимальное число
        if (x[i] == maxs)
        {
           for (int k=i;k<n;k++) // начинаем цикл индекса maxs
                x[k] = x[k+1];
           kol++;
           n--;
           i--;
        }
Вложения
Тип файла: rar test.rar (357.2 Кб, 4 просмотров)
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
08.05.2012, 19:41
Цитата Сообщение от Drygba Посмотреть сообщение
Код C++
{
int s=-1;
for (size_t i=0;i<40;++i)
s++;
if (x[i]==maxs)
{kol++;
for (int i=s; i<40;++i)
x[i]=x[i+1];
}
}
вы начинаете сдвиг массива с нулевого элемента, смысл?
Нет, не с нулевого, как раз с того, каким является максимальный.

s плюсуется всегда, а сдвиг начинается только если выполняется условие. вот и получается так же как вы ниже написали.
я рад, что мы с вами разобрались) думаю автор темы тоже)
0
08.05.2012, 20:04

Не по теме:

Цитата Сообщение от Sor Посмотреть сообщение
s плюсуется всегда,
не заметил строку s++ :-[

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2012, 20:04
Помогаю со студенческими работами здесь

Получить последовательность
Дана действительная матрица из размерностью mxn. Получить последовательность b1...bn, где bi- найбольшее из значений і-той строки. Это мне...

Дана последовательность из n целых чисел. Сформировать новую последовательность
Всем добрый день. Дана последовательность из n целых чисел. Сформировать новую последовательность которой сначала расположены в...

дана последовательность целых чисел a=(a1,a2,.,an). Получите новую последовательность, выбросив из исходной элементы со значением max (a1,a2,.,an
дана последовательность целых чисел a=(a1,a2,....,an). Получите новую последовательность, выбросив из исходной элементы со значением max...

Дана последовательность целых чисел a1,a2,. . Образовать новую последовательность, исключив из исходной те члены, которые равны min(a1,a2,.)
Последовательность находится в StringGrid.

Дана последовательность целых чисел. Образовать новую последовательность, выбросив из исходной те члены, которые равны min
Написала код, а он не работает. Приложение запускается, а при нажатии кнопки выдает ошибку. Посмотрите, пожалуйста, что не так. Я в...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru