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

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

Восстановить пароль Регистрация
 
Shadow121
 Аватар для Shadow121
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 42
02.10.2013, 20:29     Функция в трабл #1
В чем проблема мне нужно проверить отсортирован ли массив по убыванию?
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";
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2013, 20:29     Функция в трабл
Посмотрите здесь:

C++ Трабл (_TCHAR* и char*)
Трабл с map C++
Трабл с массивом C++
C++ необьяснимый трабл
C++ Сортировка Хоора и ее трабл!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
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++)
Cynacyn
 Аватар для 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++)
Shadow121
 Аватар для Shadow121
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 42
02.10.2013, 20:34  [ТС]     Функция в трабл #4
В моем коде есть инициализация i;
Код компилируется , но сама функция не работает правильно.
Cynacyn
 Аватар для 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;
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
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 внутри вашей функции, надеюсь вы в курсе
Shadow121
 Аватар для 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 внутри вашей функции, надеюсь вы в курсе
Да в курсе.
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
02.10.2013, 20:44     Функция в трабл #8
Цитата Сообщение от Shadow121 Посмотреть сообщение
Я когда сюда код писал пропустил инициализацию.
Дело не в этом дело в работоспособности функции. Мне кажется я неправильно ее оформил.
ну я хз вот ошибка...
C++
1
for(i; i<n-1; i++)
должно так быть
C++
1
for(i; i<n; i++)
скопируйте код функции что б было понятно, ато так до завтра можно копаться)))
Shadow121
 Аватар для 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";
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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));
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2013, 21:59     Функция в трабл
Еще ссылки по теме:

трабл с динамическим массивом C++
C++ Трабл с вводом/выводом
Трабл линковки C++

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 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;
}
Yandex
Объявления
02.10.2013, 21:59     Функция в трабл
Ответ Создать тему
Опции темы

Текущее время: 14:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru