Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DIMKA03
1 / 1 / 0
Регистрация: 09.11.2015
Сообщений: 58
#1

Даны целые числа, удалить все числа со значением максимального из них - C++

15.02.2016, 13:41. Просмотров 188. Ответов 5
Метки нет (Все метки)

Даны целы числа х1,...,xn . удалить все числа со значением max(х1,...,xn)
Не могу найти ошибку...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
using namespace std;
int main()
{
     int N,max,k=0;
    cin>>N;
    int a[N];
    for(int i=0;i<N;i++)
        cin>>a[i];
        max=a[0];
   for(int i=1;i<N;i++)
           if(a[i]>max)
            max=a[i];
    for(int i=0;i<N-k;)
        if(a[i]==max){
          for(int j=i+1;i<N-k;j++)
          a[j-1]=a[i];
          k++;
        }
        else ++i;
        for(int i=0;i<N-k;i++)
    cout <<a[i]<<' ';
    return 0;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2016, 13:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Даны целые числа, удалить все числа со значением максимального из них (C++):

Даны целые числа а 1,а 2,. ,а N .Удалить из последовательности все члены со значением max(a1,.,aN)? - C++
Запишите в одномерном массиве.

Даны целые положительные числа аь а2,., а„. Найти среди них те, которые являются квадратами некоторого числа т - C++
Упорядочить по возрастанию элементы каждой строки мат рицы размером пхт. Дана строка. Подсчитать количество букв к в последнем ее...

Даны целые числа р и q. Получить все делители числа q, взаимно простые с р - C++
Получить все делители числа q, взаимно простые с р.

Даны целые числа р и q. Получить все делители числа q, взаимно простые с р. - C++
Даны целые числа р и q. Получить все делители числа q, взаимно простые с р. Решите на С++. Заранее спасибо!

Даны два целых числа M но N. Вывести все целые числа из промежутка [M,n] - C++
Даны два целых числа M но N. Вывести все целые числа из промежутка , которые делящиеся 2, но не делящиеся на 4, а также количество K этих...

В одномерном массиве, элементы которого - целые числа, удалить все четные числа - C++
В одномерном массиве, элементы которого - целые числа, удалить все четные числа именно удалить а не оставить все не четные удалить...

5
_Valera_
487 / 369 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
15.02.2016, 14:10 #2
Цитата Сообщение от DIMKA03 Посмотреть сообщение
int a[N];
массив так не создается, не везде...

Цитата Сообщение от DIMKA03 Посмотреть сообщение
for(int i=0;i<N-k; )
* * * * if(a[i]==max){
бесконечный цикл

Добавлено через 4 минуты
извращение, а не код. отформатируй нормально.
0
_Scorpius_
50 / 50 / 24
Регистрация: 01.04.2015
Сообщений: 105
15.02.2016, 14:12 #3
Цитата Сообщение от _Valera_ Посмотреть сообщение
бесконечный цикл
Там нет бесконечного цикла
C++
1
2
3
4
5
6
7
for(int i=0;i<N-k;)
        if(a[i]==max){
          for(int j=i+1;i<N-k;j++)
          a[j-1]=a[i];
          k++;
        }
        else ++i;
Но запись...
0
Hikari
Хитрая блондиночка $)
1447 / 954 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
15.02.2016, 14:16 #4
Цитата Сообщение от DIMKA03 Посмотреть сообщение
удалить все числа
Удаление из статического массива априори невозможно.
Какова твоя задача на самом деле: поджать данные в массиве ближе к голове не меняя размера самого массива, или же динамические массивы использовать допустимо?
2
_Valera_
487 / 369 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
15.02.2016, 14:24 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
починил твой "код"
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
#include<iostream>
 
 
using namespace std;
 
 
 
int main()
{
    const int N = 5;
 
    int max = 0, k = 0;
 
    int a[N];
 
    for (int i = 0;i < N;i++)
        cin >> a[i];
 
 
    max = a[0];
 
    for (int i = 1; i<N; i++)
        if (a[i] > max)
            max = a[i];
 
 
    for (int i = 0;i < N - k;)
        if (a[i] == max)
        {
            for (int j = i; j < N - k - 1; j++)                         
                a[j] = a[j + 1];
            
            k++;
        }
        else ++i;
 
 
        for (int i = 0;i < N - k ; i++)
            cout << a[i] << ' ';
 
        system("PAUSE");
        return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Hikari Посмотреть сообщение
Удаление из статического массива априори невозможно.
согласен, самое плохое задание на массив которое только можно придумать. Непонимание эффективного использования СД прилагается.
0
GbaLog-
Любитель чаепитий
2895 / 1351 / 332
Регистрация: 24.08.2014
Сообщений: 4,773
Записей в блоге: 1
Завершенные тесты: 2
15.02.2016, 14:36 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от DIMKA03 Посмотреть сообщение
Даны целы числа х1,...,xn . удалить все числа со значением max(х1,...,xn)
Да без проблем.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <vector>
#include <iterator>
#include <algorithm>
#include <iostream>
using namespace std;
 
int main()
{
    int n;
    cin >> n;
    vector<int> vec(n);
    for(auto& i : vec)
        cin >> i;
    auto max = max_element(vec.begin(),vec.end());
    auto pos = remove_if(vec.begin(),vec.end(),[&max](int n) { return n == *max; });
    vec.erase(prev(pos),vec.end());
    copy(vec.begin(),vec.end(),ostream_iterator<int>(cout," "));
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2016, 14:36
Привет! Вот еще темы с ответами:

В одномерном массиве, элементы которого -целые числа, удалить все четные числа - C++
В одномерном массиве, элементы которого -целые числа, удалить все четные числа.

C++ даны целые числа а1 а2 an указать те из них у которых остаток от деления на M равен L(0<L<M-1) - C++
c++ даны целые числа а1 а2 an указать те из них у которых остаток от деления на M равен L(0&lt;L&lt;M-1) я не понимаю как сделать это вообще,...

Даны целые числа A B C, проверить можно ли из них составить геометрическую прогрессию - C++
Даны целые числа A B C , проверить можно ли из них составить геометрическую прогрессию. Если да, со ставьте из них возрастающую и убывающую...

Даны целые числа a1, a2, ., an. Получить те положительные числа из этой последовательности, которые являются полными квадратами - C++
ПОМОГИТЕ решить задачу на C++ Заранее спасибо! Даны целые числа a1, a2, ..., an. Получить те положительные числа из этой...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
15.02.2016, 14:36
Ответ Создать тему
Опции темы

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