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

Разобраться и исправить ошибки в коде - C++

Восстановить пароль Регистрация
 
Shalygin
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 23
14.07.2015, 00:46     Разобраться и исправить ошибки в коде #1
помогите разобраться, в чём ошибки

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
 
template <class T>
int SortArr(T arr[], int, int)
{
    int size, i, j, sort;
    T x;
    switch (sort)
    {
//сортировка по убыванию
    case 0:
        for (int i = 0; i < size; i++)
        {
            x = arr[i];
            for (int j = i - 1; j >= 0 && arr[j] < x; j--)
                arr[j + 1] = arr[j];
            arr[j + 1] = x;
        }
//сортировка по возрастанию
    case 1:
        for (int i = 0; i < size; i++)
        {
            x = arr[i];
            for (int j = i - 1; j >= 0 && arr[j] > x; j--)
                arr[j + 1] = arr[j];
            arr[j + 1] = x;
        }
    }
    return arr;
}
int main()
{
    srand(time(NULL));
    int const size = 10;
    int sort;
    int arr[size];
//массив до сортировки
    cout << "Array before sorting:\n";
    for (int i = 0; i < size; i++)
    {
        arr[i] = rand() % 20;
        cout << arr[i] << "\t";
    }
    cout << "Sort ascending/descending (0/1)? ";
    cin >> sort;
    SortArr(arr, size, sort);
//массив после сортировки
    cout << "\n\nArray after sorting:\n";
    for (int i = 0; i < size; i++)
    {
        arr[i] = rand() % 20;
        cout << arr[i] << "\t";
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2015, 00:46     Разобраться и исправить ошибки в коде
Посмотрите здесь:

Нужно исправить 2 ошибки в коде C++
C++ не могу исправить ошибки в коде
нужно исправить ошибки в коде C++
C++ Исправить ошибки в коде
C++ исправить ошибки в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Valera_
 Аватар для _Valera_
486 / 368 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
14.07.2015, 01:03     Разобраться и исправить ошибки в коде #2
Цитата Сообщение от Shalygin Посмотреть сообщение
switch (sort)
не инициализирована

Добавлено через 45 секунд
Цитата Сообщение от Shalygin Посмотреть сообщение
; i < size;
тоже самое

Добавлено через 37 секунд
Цитата Сообщение от Shalygin Посмотреть сообщение
int SortArr(T arr[], int, int)
как у вас так функция с типами, но без параметров !?

Добавлено через 2 минуты
Цитата Сообщение от Shalygin Посмотреть сообщение
return arr;
массив нельзя вернуть
Даценд
Модератор
 Аватар для Даценд
2508 / 2423 / 1242
Регистрация: 20.04.2015
Сообщений: 4,620
14.07.2015, 01:07     Разобраться и исправить ошибки в коде #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
1) void SortArr(T arr[], int size, int sort)
2) уберите int size, i, j, sort;
3) уберите return arr;
4) проверьте алгоритм сортировки
5) не нужно после сортировки заново рандомайзить значения.
Shalygin
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 23
14.07.2015, 01:13  [ТС]     Разобраться и исправить ошибки в коде #4
параметры вроде ниже передаются в SortArr(arr, size, sort);

Добавлено через 2 минуты
тупанул с параметрами

Добавлено через 50 секунд
conversion from 'time_t' to 'unsigned int', possible loss of data
а это про что?
_Valera_
 Аватар для _Valera_
486 / 368 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
14.07.2015, 01:20     Разобраться и исправить ошибки в коде #5
Цитата Сообщение от Shalygin Посмотреть сообщение
conversion from 'time_t' to 'unsigned int', possible loss of data
а это про что?
В целом про код) В какой строке?

Добавлено через 1 минуту
Цитата Сообщение от Shalygin Посмотреть сообщение
//массив после сортировки
cout << "\n\nArray after sorting:\n";
for (int i = 0; i < size; i++){
arr[i] = rand() % 20;
cout << arr[i] << "\t";
Интересный массив после сортировки получится
Даценд
Модератор
 Аватар для Даценд
2508 / 2423 / 1242
Регистрация: 20.04.2015
Сообщений: 4,620
14.07.2015, 01:25     Разобраться и исправить ошибки в коде #6
Цитата Сообщение от Shalygin Посмотреть сообщение
а это про что?
это о
C++
1
srand(time(NULL));
Shalygin
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 23
14.07.2015, 01:30  [ТС]     Разобраться и исправить ошибки в коде #7
я понял про что это, но здесь то уже что можно упустить?

Добавлено через 1 минуту
повторный rand() убрал. это скопировал так

Добавлено через 1 минуту
conversion from 'time_t' to 'unsigned int', possible loss of data
строка 34
Даценд
Модератор
 Аватар для Даценд
2508 / 2423 / 1242
Регистрация: 20.04.2015
Сообщений: 4,620
14.07.2015, 01:30     Разобраться и исправить ошибки в коде #8
Цитата Сообщение от Shalygin Посмотреть сообщение
но здесь то уже что можно упустить?
Это предупреждение, о том, что srand() принимает unsigned int, а time() возвращает time_t и возможна потеря данных.
Т.е. ничего страшного в данной программе.
Shalygin
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 23
14.07.2015, 01:30  [ТС]     Разобраться и исправить ошибки в коде #9
и последнее в 26 строке
error C2561: 'SortArr' : function must return a value
Даценд
Модератор
 Аватар для Даценд
2508 / 2423 / 1242
Регистрация: 20.04.2015
Сообщений: 4,620
14.07.2015, 01:39     Разобраться и исправить ошибки в коде #10
Shalygin,
Цитата Сообщение от Даценд Посмотреть сообщение
1) void SortArr(T arr[], int size, int sort)
Shalygin
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 23
14.07.2015, 01:43  [ТС]     Разобраться и исправить ошибки в коде #11
я так уже попробовал. чихарда теперь получается с выводом. ведь если void, то и выводить надо только из функции... можно из main?
Даценд
Модератор
 Аватар для Даценд
2508 / 2423 / 1242
Регистрация: 20.04.2015
Сообщений: 4,620
14.07.2015, 01:52     Разобраться и исправить ошибки в коде #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Shalygin Посмотреть сообщение
ведь если void, то и выводить надо только из функции... можно из main?
Массив передается по ссылке в функцию, там сортируется. Короче, в main после вызова SortArr массив arr будет отсортирован. Если, конечно, исправите алгоритм сортировки.
И, кстати, функция массив не вернет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2015, 02:59     Разобраться и исправить ошибки в коде
Еще ссылки по теме:

исправить ошибки в коде C++
Исправить ошибки в коде C++
Исправить ошибки в коде C++

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

Или воспользуйтесь поиском по форуму:
FakeMoNey
1 / 1 / 1
Регистрация: 27.11.2012
Сообщений: 23
14.07.2015, 02:59     Разобраться и исправить ошибки в коде #13
А зачем вы при выводе отсортированного массива, присваиваете ему новые значениия?
Yandex
Объявления
14.07.2015, 02:59     Разобраться и исправить ошибки в коде
Ответ Создать тему
Опции темы

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