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

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

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

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

14.07.2015, 00:46. Просмотров 247. Ответов 12
Метки нет (Все метки)

помогите разобраться, в чём ошибки

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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разобраться и исправить ошибки в коде (C++):

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Найти ошибки в коде и исправить эти ошибки - C++ - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

Исправить ошибки в коде - C++
Помогите исправить ошибки(( #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;cstdio&gt; #include &lt;cstdlib&gt; ...

Исправить ошибки в коде - C++
Вообщем нужна помощь в нахождении ошибок!5 легеньких Заданий(в комментариях в main.cpp). Суть ошибок: 1.Какое то значение из 1-го...

Исправить ошибки в коде - C++
int _tmain(int argc, _TCHAR* argv) { return 0; } #include &quot;stdio.h&quot; #include &quot;conio.h&quot; #include &quot;windows.h&quot; // Две...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
_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;
массив нельзя вернуть
Даценд
Модератор
Эксперт .NET
3284 / 3199 / 1632
Регистрация: 20.04.2015
Сообщений: 5,875
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_
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";
Интересный массив после сортировки получится
Даценд
Модератор
Эксперт .NET
3284 / 3199 / 1632
Регистрация: 20.04.2015
Сообщений: 5,875
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
Даценд
Модератор
Эксперт .NET
3284 / 3199 / 1632
Регистрация: 20.04.2015
Сообщений: 5,875
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
Даценд
Модератор
Эксперт .NET
3284 / 3199 / 1632
Регистрация: 20.04.2015
Сообщений: 5,875
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?
Даценд
Модератор
Эксперт .NET
3284 / 3199 / 1632
Регистрация: 20.04.2015
Сообщений: 5,875
14.07.2015, 01:52 #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Shalygin Посмотреть сообщение
ведь если void, то и выводить надо только из функции... можно из main?
Массив передается по ссылке в функцию, там сортируется. Короче, в main после вызова SortArr массив arr будет отсортирован. Если, конечно, исправите алгоритм сортировки.
И, кстати, функция массив не вернет.
FakeMoNey
1 / 1 / 1
Регистрация: 27.11.2012
Сообщений: 24
14.07.2015, 02:59 #13
А зачем вы при выводе отсортированного массива, присваиваете ему новые значениия?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2015, 02:59
Привет! Вот еще темы с ответами:

Исправить ошибки в коде - C++
заранее огромное спасибо:) #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; #include&lt;math.h&gt; using...

Исправить ошибки в коде - C++
Пожалуйста помогите исправить ошибки Первая часть кода (вторая в комментариях) #define _CRT_SECURE_NO_WARNINGS #include...

Исправить ошибки в коде. - C++
Выдает ошибку, на скрине все есть

исправить ошибки в коде - C++
Помогите и исправьте ошибки в моём коде. Буду очень благодарен. Ссылка на условие задачи: ...


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

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

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