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

Как исправить эту ошибку? - C++

Восстановить пароль Регистрация
 
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 284
11.12.2012, 00:25     Как исправить эту ошибку? #1
Помогите пожайлуста, написал программу, но при компиляции выдает 3 ошибки, что-то немогу понять как их исправить, вроде бы все правильно, но может я что-то я не вижу, помогите пожайлуста
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <stdio.h>
#include <algorithm>
#include <functional>
#include <vector>
using namespace std;
void RandomShuffle(int *pA, int r, int x, int n)
{
    const int VECTOR_SIZE=r;
    typedef vector<int> IntVector;
    typedef vector<int> IntVector;
    typedef IntVector::iterator IntVectorIt;
 
    IntVectorIt Numbers(VECTOR_SIZE);
    IntVectorIt start,end, it;
    for (int i=0;i<r;i++)
    {
        Numbers[i] = x;
        x=x+n;
    }
    start=Numbers.begin();
    end=Numbers.end();
    random_shuffle(start, end);
    for(it=start; it!=end; it++)
    {
        *(pA++)=*it;
    }
}
 
void main()
 
{
    int r;
    int i;
    char v;
    int vrem;
    int *pArr;
    printf("Set number of elements in the array:");
    scanf("%i",&r);
    pArr=new int[r];
    printf("\r\nCheck '1' for manual array initialization \r\nor '2' for random program array initialization\r\n");
    while(1)
    {
        printf("\r\nWhat is your check?");
        scanf("%i",&v);
        switch (v)
        {
            case 1:
                for(i=0;i<r;i++)
                {
                    printf("Set Arr[%i] value: ",i);
                    scanf("%i",pArr+i);
                }
                break;
            case 2:
                RandomShuffle(pArr,r,1,1);
                break;
            default:
                printf("The check i wrong!\r\n");
                break;
        }
        if (v==1 || v==2)
            break;
    }
    printf ("\r\nArr={");
    for (i=0;i<r;i++)
    {
        if (i!=r-1)
            printf("%i, ",*(pArr+i));
        else
            printf ("%i",*(pArr+i));
    }
    printf ("}\r\n");
            
    int a=r-1;
    int m;
    for (i=0;i<r-1;i++)
        
        {
        m=0;
        for (int j=0;j<a;j++)
        {   
            if (*(pArr+j)<*(pArr+j+1))
            {
                vrem=*(pArr+j);
                *(pArr+j)=*(pArr+j+1);
                *(pArr+j+1)=vrem;
                m++;
                
            }
        
        if (m=0) break;
        
        }
        a--;    
        }
    
        
    printf("\r\nSorted Arr={");
    
    for(i=0;i<r;i++)
    {
        if(i!=r-1)
            printf("%c, ",*(pArr+i));
        else
            printf("%c",*(pArr+i));
    }
    printf("}\r\n");
    delete []pArr;
    scanf ("%i");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 00:25     Как исправить эту ошибку?
Посмотрите здесь:

как исправить ошибку C++
Как устранить эту ошибку ри компиляции? C++
Как исправить ошибку? C++
Как исправить ошибку C++
C++ Как исправить ошибку?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
11.12.2012, 00:41     Как исправить эту ошибку? #2
C++
1
2
3
4
5
6
7
    const int VECTOR_SIZE=r;
    typedef vector<int> IntVector;
    typedef IntVector::iterator IntVectorIt;
 
    IntVector Numbers(VECTOR_SIZE);
    //код всякий
    int main
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 284
11.12.2012, 01:04  [ТС]     Как исправить эту ошибку? #3
ошибки остались те же, надо было убрать строчку
Цитата Сообщение от kravam Посмотреть сообщение
typedef vector<int> IntVector;
?
да и int main добавил, всеравно нечего
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
11.12.2012, 01:20     Как исправить эту ошибку? #4
Давай внятно, чё за ошибки. Без этих вот
Цитата Сообщение от итернал Посмотреть сообщение
да и int main добавил, всеравно нечего
мне эти чего-ничего даром не нужны.

И код давай сюда исправленный.
Otshelnik
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 8
11.12.2012, 01:21     Как исправить эту ошибку? #5
Цитата Сообщение от итернал Посмотреть сообщение
IntVectorIt Numbers(VECTOR_SIZE);
Ошибка здесь. Ты создаешь итератор, а нужно вектор.

То есть, там должно быть следующее
IntVector Numbers(VECTOR_SIZE);
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 284
11.12.2012, 01:31  [ТС]     Как исправить эту ошибку? #6
Цитата Сообщение от kravam Посмотреть сообщение
Давай внятно, чё за ошибки. Без этих вот
все спасибо, я понял где была моя ошибка, простите что сразу вас не понял, моя глупость


Цитата Сообщение от Otshelnik Посмотреть сообщение
Ошибка здесь. Ты создаешь итератор, а нужно вектор.
Спасибо что ответили подробней, сам што-то сглупил

Добавлено через 4 минуты
а если не сложно пожайлуста подскажите почему имено так должно быть, что бы я в будушем недопускал таких ошибком, ну и знал причину собственой ошибки, очень прошу, а вот смысла же нету если я не пойму как оно было зделано потом наверняка же где-то допущу такую ошибку и не буду знать и снова прийдется кого-то тревожить
Otshelnik
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 8
11.12.2012, 02:32     Как исправить эту ошибку? #7
Ты хотел создать массив итераторов, что в принципе - нонсенс. А хотел, да и нужно было, создать массив интовых векторов, насколько я понял. И уже по созданному массиву ходить итератором, для чего собственно итератор и предназначен.
Как-то так.

Внимательней будь.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
11.12.2012, 02:55     Как исправить эту ошибку? #8
Цитата Сообщение от Otshelnik Посмотреть сообщение
Ты хотел создать массив итераторов, что в принципе - нонсенс.
Да ну. Массив указателей не нонсенс, почему же массив итераторов нонсенс?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2012, 03:01     Как исправить эту ошибку?
Еще ссылки по теме:

C++ Как исправить ошибку?
C++ Как исправить ошибку?
Как исправить ошибку? C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
11.12.2012, 03:01     Как исправить эту ошибку? #9
По-настоящему нонсенс тут лишь использование си-шных вводов/выводов наряду с STL. А также использование векторов для перемешивания элементов динамического массива.
Yandex
Объявления
11.12.2012, 03:01     Как исправить эту ошибку?
Ответ Создать тему
Опции темы

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