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

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

Войти
Регистрация
Восстановить пароль
 
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 267
#1

Ошибка в функции - C++

22.04.2013, 16:33. Просмотров 231. Ответов 6
Метки нет (Все метки)

У меня значения j должен изменятся от 0 до 9, а вместо этого он изменяется от 11 до 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
#include <iostream>
#include <conio.h>
using namespace std;
 
const int size = 10;
int max_maxi_finder(int *arr, int size, int& max, int& maxi, int& j)
{
  for (int i = j; i < size; i++)
  {
   if (max < arr[i])
   {
    max = arr[i];
    maxi = i;
   }
   int temp = arr[i];
   arr[i] = max;
   arr[max] = temp;
  }
   j++;
  return 0;
}
 
int main()
{
  int arr[size] = {2,7,3,6,8,1,4,9,5,10}, max = arr[0], maxi, j = 0;
  for (int i = 0; i < size; i++)
  {
   max_maxi_finder(arr, size, max, maxi, j);
   cout << max << endl;
   cout << j << endl;
  }
  getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 16:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в функции (C++):

А почему ошибка, что функции print и read не определены в функции main()? - C++
Что-то не понимаю. Они определены в заголовочном файле. А подчеркивается красным что нет.... #include &lt;iostream&gt; #include...

Ошибка в шаблоне функции: "Отсутствуют экземпляры шаблон функции, соответствующие списку аргументов" - C++
#include &lt;iostream&gt; #include &lt;iterator&gt; #include &lt;map&gt; #include &lt;Windows.h&gt; #include &lt;functional&gt; #include &lt;string&gt; #include...

Ошибка в функции! - C++
Господа знатоки, открытое шифрование Эль-Гамаля, функция дешифрования работает не правильно, например я шифрую текст: завтра в 8 часов ,...

Ошибка в функции - C++
Вот программа проблема с функцией &quot;ras&quot; не правильно работает надо вернуть значения vi,vj,v. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

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

Ошибка в функции - C++
Помогите исправить ошибку мне надо Составить функцию countX, которая, получив c и b через параметры по значению, &quot;а&quot; через глобальную...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
22.04.2013, 16:43 #2
В 18-й строке ты выходишь за пределы массива.
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 267
22.04.2013, 16:51  [ТС] #3
lazybiz, Спасибо, исправил. Ещё вопрос, почему максимальный элемент у меня постоянно 10, задача, чтобы при j = 0, max = 10, а при j = 1, max = 9, при j = 2, max = 8 и т.д.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
22.04.2013, 16:55 #4
Цитата Сообщение от Leonman Посмотреть сообщение
Ещё вопрос, почему максимальный элемент у меня постоянно 10, задача, чтобы при j = 0, max = 10, а при j = 1, max = 9, при j = 2, max = 8 и т.д.
Потому что у тебя алгоритм программы такой. Откуда мне знать как должна работать твоя программа?
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 267
22.04.2013, 17:02  [ТС] #5
Мысль была такова, что при j = 0, во всем массиве ищется максимальный элемент, затем максимальный элемент и первый элемент меняются местами, после того как они поменялись местами j = 1, и в массиве снова ищется максимальный элемент, только теперь берётся не весь массив, а весь массив, но без первого элемента, тоесть.
Пример:
Изначальный массив arr[size] = {2,7,3,6,8,1,4,9,5,10}, j = 0, max = 10, поменяли местами максимальный элемент и первый элемент, стало arr[size] = {10,7,3,6,8,1,4,9,5,2}, после этого j = 1, а значит что теперь максимальный элемент ищется в массиве arr[size] = {7,3,6,8,1,4,9,5,2}, потому что теперь цикл идёт от 1 до size (size = 10)
Такова была моя логика
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
22.04.2013, 17:34 #6
У меня получился такой вариант:
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>
#include <conio.h>
 
using namespace std;
 
void iterate( int *a, size_t i, size_t n, int &max )
{
    int k = -1;
    for ( size_t j = i; j < n; j++ ) {
        if ( a[j] > max ) {
            max = a[j];
            k = j;
        }
    }
    if ( k != -1 ) {
        int tmp = a[i];
        a[i] = a[k];
        a[k] = tmp;
    }
}
 
int main()
{
    int a[] = { 2,7,3,6,8,1,4,9,5,10 };
    const size_t n = sizeof( a ) / sizeof( a[0] );
 
    for ( size_t i = 0; i < n; i++ ) {
        int max = a[i];
        iterate( a, i, n, max );
        cout << i << "\t" << max << endl;
    }
 
//  getch();
}
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 267
22.04.2013, 23:52  [ТС] #7
lazybiz, Огромное спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2013, 23:52
Привет! Вот еще темы с ответами:

Ошибка в Функции - C++
#include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include &lt;iomanip.h&gt; bubbleSort(int , const int); ...

Ошибка в функции - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;Windows.h&gt; #include &lt;iomanip&gt; using namespace std; char bufUkr; char...

Ошибка в функции - C++
Здорова! Есть код функции: //глобальная функция которая будет возвращать интерфейс BOOL GetClassObject(const int nClsid,const int...

Ошибка в функции - C++
#include &quot;stdafx.h&quot; #include &quot;stdlib.h&quot; #include &quot;windows.h&quot; #include &quot;iostream&quot; #include &quot;math.h&quot; #include &quot;conio.h&quot; ...


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

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

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