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

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

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

Функция в трабл - C++

02.10.2013, 20:29. Просмотров 322. Ответов 10
Метки нет (Все метки)

В чем проблема мне нужно проверить отсортирован ли массив по убыванию?
C++
1
2
3
4
5
6
7
8
9
10
11
void Sorten(int *Array, int n){
     int i;
     k=0; j=0;
     for(i; i<n-1; i++)
     if(Array[i]<Array[i+1])
     k++; else j++;
     if(k=n-1)
     cout << "Sorted\n";
     else
     cout << "Unsorted\n";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2013, 20:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция в трабл (C++):

необьяснимый трабл - C++
Написать профамму, которая выводит на экран работающие &quot;электронные часы&quot;, которые работают в течение, например, трех минут или до тех...

Трабл с map - C++
Доброго времени суток В input.txt лежат названия поездов, время их отправления и прибытия. Расстояние - константа. Нужно вывести самый...

Трабл с массивом - C++
Дан массив задающийся рандомно. Размерность массива 40. Диапазон значений 0 - 100. Нужно найти непрерывный участок из 10 элементов, который...

Трабл линковки - C++
Всем привет! Хочу запустить пример, который показывает приветствие. Код: #include &lt;Windows.h&gt; #include &lt;tchar.h&gt; int...

Сортировка Хоора и ее трабл! - C++
Всем привет! Мой рабочий листинг (нужен правильный вывод и &quot;counter&quot;) : #include &lt;iostream&gt; #include &lt;time.h&gt; #include...

Трабл с блок-схемой - C++
Была написана программа,для работы с файлом,все работает,но при составлении блок-схемы возникли проблемы.Вот сделал набросок в Visio,но...

10
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
02.10.2013, 20:32 #2
Цитата Сообщение от Shadow121 Посмотреть сообщение
В чем проблема мне нужно проверить отсортирован ли массив по убыванию?
C++
1
2
3
4
5
6
7
8
9
10
11
void Sorten(int *Array, int n){
     int i;
     k=0; j=0;
     for(i; i<n-1; i++)
     if(Array[i]<Array[i+1])
     k++; else j++;
     if(k=n-1)
     cout << "Sorted\n";
     else
     cout << "Unsorted\n";
}
инициализируйте i
C++
1
for(i=0; i<n-1; i++)
1
Cynacyn
33 / 33 / 0
Регистрация: 02.05.2013
Сообщений: 109
02.10.2013, 20:34 #3
Цитата Сообщение от Shadow121 Посмотреть сообщение
В чем проблема мне нужно проверить отсортирован ли массив по убыванию?
C++
1
2
3
4
5
     int i;
     k=0; j=0;
     for(i; i<n-1; i++)
 
}
В этом.
Нужно так:
C++
1
2
int i, k=0, j=0;
for(i=0; i<n-1; i++)
или так
C++
1
2
int i, k, j;
i=k=j=0;
Но, имхо, лучше так:
C++
1
2
3
int k=0;
int j=0;
for(int i=0; i<n-1;i++)
1
Shadow121
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 42
02.10.2013, 20:34  [ТС] #4
В моем коде есть инициализация i;
Код компилируется , но сама функция не работает правильно.
0
Cynacyn
33 / 33 / 0
Регистрация: 02.05.2013
Сообщений: 109
02.10.2013, 20:35 #5
Цитата Сообщение от Shadow121 Посмотреть сообщение
........
int i;
........
это объявление:
C++
1
int i;
это инициализация:
C++
1
i=0;
объявление и инициализация:
C++
1
int i=0;
1
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
02.10.2013, 20:41 #6
Цитата Сообщение от Shadow121 Посмотреть сообщение
В чем проблема мне нужно проверить отсортирован ли массив по убыванию?
C++
1
     if(k=n-1)
вот еще ошибочка
C++
1
 if(k==(n-1) )
Добавлено через 1 минуту
Цитата Сообщение от Shadow121 Посмотреть сообщение
В моем коде есть инициализация i;
Код компилируется , но сама функция не работает правильно.
вот это не совсем понятно...если вы объявляете в MAIN'е переменную i , то это никак не относится к переменной i внутри вашей функции, надеюсь вы в курсе
1
Shadow121
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 42
02.10.2013, 20:44  [ТС] #7
Я когда сюда код писал пропустил инициализацию.
Дело не в этом дело в работоспособности функции. Мне кажется я неправильно ее оформил.

Добавлено через 2 минуты
Цитата Сообщение от newb_programmer Посмотреть сообщение
вот еще ошибочка
C++
1
 if(k==(n-1) )
Спасибо не углядел что присваиваю.

вот это не совсем понятно...если вы объявляете в MAIN'е переменную i , то это никак не относится к переменной i внутри вашей функции, надеюсь вы в курсе
Да в курсе.
0
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
02.10.2013, 20:44 #8
Цитата Сообщение от Shadow121 Посмотреть сообщение
Я когда сюда код писал пропустил инициализацию.
Дело не в этом дело в работоспособности функции. Мне кажется я неправильно ее оформил.
ну я хз вот ошибка...
C++
1
for(i; i<n-1; i++)
должно так быть
C++
1
for(i; i<n; i++)
скопируйте код функции что б было понятно, ато так до завтра можно копаться)))
1
Shadow121
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 42
02.10.2013, 20:48  [ТС] #9
Спасибо за помощь все исправил.
Вот рабочий код
C++
1
2
3
4
5
6
7
8
9
10
11
void Sorten(int *Array, int n){
     int k=0;
     int j=0;
     for(int i=0; i<n-1; i++)
     if(Array[i]>Array[i+1])
     k++; else j++;
     if(k==(n-1))
     std::cout << "Sortiert\n";
     else
     std::cout << "Unsortiert\n";
}
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
02.10.2013, 21:45 #10
отсортирован ли массив по убыванию?
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
#include <cstddef>
#include <algorithm>
#include <iostream>
 
bool is_sorted_in_descending_order(int const* arr, std::size_t n)
{
    for(std::size_t i = 1; i < n; ++i)
      if(arr[i-1] < arr[i]) // если следующий элемент больше предыдущего,
        return false;       // массив не отсортирован
    return true;
}
 
int main()
{
    int arr[] = {1,2,3};
    std::size_t const n = sizeof(arr) / sizeof(*arr);
 
    do
    {
        for(std::size_t i = 0; i < n; ++i)
          std::cout << arr[i] << ' ';
        if(is_sorted_in_descending_order(arr, n))
          std::cout << "- Yes\n";
        else
          std::cout << "- No\n";
    }
    while(std::next_permutation(arr, arr + n));
}
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
02.10.2013, 21:59 #11
rangerx, зачем усложнять программу новичку? Сложность только отпугивает!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
bool Sorted(int *Array, int n){
     bool srt=true;
     for(int i=0; srt && i<n-1; i++)
         srt=(Array[i]>Array[i+1]);
     return srt;
}
int main(){
  int data[]={5, 4, 3, 2, 1};
  if (Sorted(data, 5)) 
      std::cout<<"Sorted ";
  else
      std::cout<<"NOT Sorted ";
  return 0;
}
0
02.10.2013, 21:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2013, 21:59
Привет! Вот еще темы с ответами:

трабл с вводом с клавиатуры - C++
суть программы я ввожу 2 числа и программа вычисляет такую штуку: число1%число2 в head объявляю класс в method описываю методы...

Небольшой трабл с функциями - C++
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include&lt;iostream&gt; #include&lt;iomanip&gt; using namespace std; void vvod...

Трабл с вводом/выводом - C++
Вот есть код: #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main(){ setlocale(0,&quot;&quot;); char a; ifstream...

Трабл (_TCHAR* и char*) - C++
Есть трабл.... var сmd: string; cmd := ParamStr(1); if (cmd = '-h') or (cmd = '-H') or (cmd = '/H') or (cmd = '/h') then ...


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

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

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