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

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

Войти
Регистрация
Восстановить пароль
 
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
#1

С++ задача (исправить ошибку в коде) - C++

05.10.2013, 21:15. Просмотров 1678. Ответов 9
Метки нет (Все метки)

Помогите не правильно выводится, исправьте пожалуйста должен так выводиться
Sample input 1:
9
3 5 1 7 9 0 9 -3 10

Sample output 1:
9 10 9

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
#include <iostream>
using namespace std;
int main()
{
    int a[100];
    int n;
    cin >> n;
 
    for (int i=0; i<n; i++)
        cin >> a[i];
    for (int i=0; i<n; i++)
    {
        for (int j=i; j<n; j++)
        {
            if (a[i] > a[j])
            {
                swap(a[i], a[j]);
            }
        }
    }
    for (int i=n-1; i>n-4; i--)
    {
        cout << a[i] << " ";
    }
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2013, 21:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С++ задача (исправить ошибку в коде) (C++):

Исправить ошибку в коде - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;math.h&gt; using namespace std; const int MaxIter=500; int matn () { double...

Исправить ошибку в коде - C++
//--------------------------------------------------------------------------- #pragma hdrstop #include &lt;iterator&gt; #include...

Исправить ошибку в коде - C++
Вроде веденно всё правильно но выдаёт ошибку: #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { ...

Исправить ошибку в коде - C++
Задача простейшая, но вот реализовать не получается правильно, вот условие : Написать программу вычисления стоимости покупки с учетом...

исправить ошибку в коде - C++
мне вот недавно скинули программу, только она не работает, ругается на &quot;выражение должно иметь тип класса&quot;. не могу понять и вообще саму...

Исправить ошибку в коде. - C++
Реализовать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями ...

9
Belfegor
Ghost
173 / 173 / 6
Регистрация: 16.09.2012
Сообщений: 526
05.10.2013, 21:24 #2
Цитата Сообщение от AlisherIITU Посмотреть сообщение
Sample input 1:
9
3 5 1 7 9 0 9 -3 10
Sample output 1:
9 10 9
какое условие задачи?
0
m0dem
6 / 6 / 0
Регистрация: 30.09.2013
Сообщений: 28
05.10.2013, 21:46 #3
Помогите не правильно выводится, исправьте пожалуйста должен так выводиться
Sample input 1:
9
3 5 1 7 9 0 9 -3 10

Sample output 1:
9 10 9
что это???
0
Alexdemath
125 / 122 / 6
Регистрация: 11.04.2010
Сообщений: 255
05.10.2013, 22:17 #4
Цитата Сообщение от AlisherIITU Посмотреть сообщение
Помогите не правильно выводится, исправьте пожалуйста должен так выводиться
Sample input 1:
9
3 5 1 7 9 0 9 -3 10
Sample output 1:
9 10 9
Нужно найти 3 максимальных элемента?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
    int a[9] = {3, 5, 1, 7, 9, 0, 9, -3, 10};
    int n = 9;
 
    for (int i = 0; i < 3; i++)
     { int max = i;
       for (int j = i+1; j < n; j++)
        { if (a[j] > a[max]) max = j; }
       if (max != i)
        { int temp = a[i]; a[i] = a[max]; a[max] = temp; }
       cout << a[i] << " ";
      }
 
    cout << endl << endl;
    return 0;
}
0
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
06.10.2013, 07:52  [ТС] #5
Given N integers. You need to choose three of them such numbers whose product is maximum.

Input format:
First line - N integer
Then the sequence of numbers (3<=N<=100).
Any number from the sequence is not bigger that 1000 by it's absolute value.

Output format:
Output 3 numbers whoose multiplication will be the largest.
If more that one variant exists,output any of them.

Sample input 1:
9
3 5 1 7 9 0 9 -3 10

Sample output 1:
9 10 9

Sample input 2:
3
-5 -300 -12

Sample output 2:
-5 -300 -12

Вот условие

Добавлено через 4 минуты
Цитата Сообщение от Alexdemath Посмотреть сообщение
Нужно найти 3 максимальных элемента?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
    int a[9] = {3, 5, 1, 7, 9, 0, 9, -3, 10};
    int n = 9;
 
    for (int i = 0; i < 3; i++)
     { int max = i;
       for (int j = i+1; j < n; j++)
        { if (a[j] > a[max]) max = j; }
       if (max != i)
        { int temp = a[i]; a[i] = a[max]; a[max] = temp; }
       cout << a[i] << " ";
      }
 
    cout << endl << endl;
    return 0;
}
У вас не правильно выводится должно 9 10 9, а у вас 10 9 9
0
Almost29
9 / 9 / 1
Регистрация: 28.03.2013
Сообщений: 82
06.10.2013, 10:04 #6
Вы настолько ленивы, что сначала вам было тяжело написать условие, а теперь перевести его? Чтож, вам нечем помочь.
0
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
06.10.2013, 10:15  [ТС] #7
Цитата Сообщение от Almost29 Посмотреть сообщение
Вы настолько ленивы, что сначала вам было тяжело написать условие, а теперь перевести его? Чтож, вам нечем помочь.
На счет лени вы ошибаетесь, я не перевожу его потому-что я считаю что программисты понимают что нужно делать ведь английский в программирование очень важен
0
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
06.10.2013, 10:21 #8
Я знаю английский, и в условии ничего не сказано про то, что порядок элементов должен сохраняться.
Решение уже дано. Вместо благодарности вы умничаете.
0
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
06.10.2013, 10:36  [ТС] #9
Цитата Сообщение от SummerRain Посмотреть сообщение
Я знаю английский, и в условии ничего не сказано про то, что порядок элементов должен сохраняться.
Решение уже дано. Вместо благодарности вы умничаете.
Никто здесь не умничает, просто по условию должно выводится вот так
Sample input 1:
9
3 5 1 7 9 0 9 -3 10

Sample output 1:
9 10 9
0
Alexdemath
125 / 122 / 6
Регистрация: 11.04.2010
Сообщений: 255
07.10.2013, 03:51 #10
AlisherIITU, в задаче буквально написано:

"If more that one variant exists, output any of them."

То есть для {3,5,1,7,9,0,9,-3,10} в ответ можно записать {9,10,9} или {9,9,10} или {10,9,9},
а для {-5,-300,-12} - {-5,-300,-12} или {-300,-5,-12} или {-300,-12,-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
#include <iostream>
using namespace std;
 
int main()
{
    int a[9] = {3, 5, -9, 7, 8, 0, 1, -3, -10},
        n = 9, x, y;
 
    for (int i = 0; i < n; i++) cout << a[i] << " ";
 
    for (int i = 0; i < n; i++)   // Sort (up)
     { int min = i;
       for (int j = i+1; j < n; j++)
        { if (a[j] < a[min]) min = j; }
       if (min != i)
        { int temp = a[i]; a[i] = a[min]; a[min] = temp; }
     }
 
    if (a[0]*a[1] > a[n-1]*a[n-2])
      { x = a[0];   y = a[1]; }
    else
      { x = a[n-3]; y = a[n-2]; }
 
    cout << "\n\nThree numbers whose product is maximum:\n\n";
    cout << x << " " << y << " " << a[n-1] << "\n" << endl;
    return 0;
}
Добавлено через 42 минуты
забыл одно условие дописать

строку 19 замените на

C++
1
  if (a[0]*a[1] > a[n-1]*a[n-2] && a[n-1] > 0)
Добавлено через 2 часа 28 минут
ещё одно условие в этой строке

строку 19 замените на

C++
1
if (a[0] < 0 && a[n-1] > 0 && a[0]*a[1] > a[n-1]*a[n-2])
Добавлено через 2 часа 39 минут
Вот более эффективное решение (без сортировки со сложностью алгоритма ~O(n))
вроде все случаи учёл)

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
#include <iostream>
using namespace std;
 
int main()
{
    int a[9] = {3, 5, -9, 7, 8, 0, 1, -3, -10},
        n = 9;
 
    for (int i = 0; i < n; i++) cout << a[i] << " ";
 
    for (int i = 0; i < 2; i++)       // Переносим в начале массива
     { int k = i;                     //  2 минимальных элемента (время ~O(n))
       for (int j = i+1; j < n; j++)
        { if (a[j] < a[k]) k = j; }
       int t = a[i]; a[i] = a[k]; a[k] = t;
     }
 
    for (int i = n-1; i >= n-3; i--)  // Переносим в конец массива
     { int k = i;                     //  3 максимальных элемента (время ~O(n))
       for (int j = i-1; j >= 0; j--)
        { if (a[j] > a[k]) k = j; }
       int t = a[i]; a[i] = a[k]; a[k] = t;
     }
 
    int x = a[n-3], y = a[n-2];
 
    if (a[0] < 0 && a[n-1] > 0 && (a[0]*a[1] > a[n-2]*a[n-3]))
     { x = a[0]; y = a[1]; }
 
    cout << "\n\nThree numbers whose product is maximum:\n\n";
    cout << x << " " << y << " " << a[n-1] << "\n" << endl;
 
    return 0;
}
0
07.10.2013, 03:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2013, 03:51
Привет! Вот еще темы с ответами:

Исправить ошибку в коде. С++ - C++
Помогите исправить ошибку. Ошибка заключается в некорректной работе при вводе сообщения с пробелом. #include &quot;stdafx.h&quot; #include...

Исправить ошибку в коде с++ - C++
Помогите исправить ошибку в коде: CString m_showlink; CRec1-&gt;GetFieldValue(&quot;Ïóòü&quot;,CValue); m_showlink = CValue.pbVal; ...

Исправить ошибку в коде - C++
где ошибка? #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main () { setlocale(LC_ALL,&quot;Russian&quot;); double...

Исправить ошибку в коде - C++
помогите найти ошибку . студия 2012 #include &lt;iostream&gt; #include &quot;queue.h&quot; using namespace std; int main() { Queue a,c;...


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

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

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