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

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

Войти
Регистрация
Восстановить пароль
 
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 137
#1

Ошибки в функции - C++

18.01.2012, 01:28. Просмотров 1071. Ответов 8
Метки нет (Все метки)

Программа сортировка вставкой с последовательным поиском. Массив создаётся рандомным функцией. Выдаёт ошибку с этой функцией. Не понимаю в чём проблема.
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
int Rand_massiv (int N);
void Put_posl_sort (int *a,int N);
int main(){
    int N,a;
 
 
    //fscanf(in,"%d",&N);
    N=9;
    a=Rand_massiv(N);
    Put_posl_sort (a,N);
 
 
    for (int i=0;i<N;++i){
    printf ("%d",a[i]);
    }
 
 
 
 
    return 0;
}
////////////////////////////////////////////
int* Rand_massiv (int N){
    int *a;
 
    a=new int[N];
    srand(time(NULL));
    for (int i=0;i<N;++i){
        a[i]=rand()%500;
    }
    return a;
}
/////////////////////////////////////////////
void Put_posl_sort (int *a, int N){
    int tmp;
    if (a[0]>a[1]){
        tmp=a[0];
        a[0]=a[1];
        a[1]=tmp;
    }
    for (int i=2;i<N;++i){
        if (a[i]>a[i-1]){
            continue;
        }
        int k=0;
        while (a[i]>a[k]){
            ++k;
        }
      tmp=a[k];
        a[k]=a[i];
        int l=i;
        while (k+2<=l){
            a[l]=a[l-1];
            --l;
        }
        a[k+1]=tmp;
    }
}
выдаёт следущие ошибки
.cpp||In function `int main()':|
.cpp|15|error: invalid conversion from `int' to `int*'|
.cpp|15|error: initializing argument 1 of `void Put_posl_sort(int*, int)'|
.cpp|19|error: invalid types `int[int]' for array subscript|
.cpp||In function `int* Rand_massiv(int)':|
.cpp|28|error: new declaration `int* Rand_massiv(int)'|
.cpp|6|error: ambiguates old declaration `int Rand_massiv(int)'|
||=== Build finished: 5 errors, 0 warnings ===|
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2012, 01:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибки в функции (C++):

Функции Ошибки - C++
#include &lt;iostream&gt; using namespace std; int powers(double n,int p=2); int main() { double n; int p; ...

Странные ошибки в функции - C++
#include &lt;iostream&gt; using namespace std; struct times { int hours; int minutes; int seconds; char...

Найти ошибки в функции - C++
Что не верно в этой функции? int getMinAmount() { if (SIZE == 0) { throw EmptyArray; } else { int min =...

Ошибки определения функции - C++
При компиляции программа выдает ряд ошибок - в строках 6 и 7. Подскажите, пожалуйста, как здесь можно исправить. Error 1 error C2143:...

Типизация,ошибки в функции - C++
написал простую функцию,выполняющяя авторизацию...вот код char entering(char un,int pass,int vc){ srand(time(NULL)); char...

Ошибки в программе интерполяции функции - C++
выдает ошибки Unit1.cpp(194): E2209 Unable to open include file 'graphics.h' Unit1.cpp(197): E2451 Undefined symbol 'DETECT' ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
NoMasters
Псевдослучайный
1754 / 1097 / 72
Регистрация: 13.09.2011
Сообщений: 3,134
18.01.2012, 01:39 #2
а в main должно было быть указателем. И прототип должен соответствовать функции. То есть возвращать указатель.
0
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 137
18.01.2012, 01:44  [ТС] #3
А прототип разве не возвращает указатель?
return a;
0
NoMasters
Псевдослучайный
1754 / 1097 / 72
Регистрация: 13.09.2011
Сообщений: 3,134
18.01.2012, 01:46 #4
Прототип — это то, что в строках 6-7. Rand_massiv у тебя возвращает int*
0
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 137
18.01.2012, 01:53  [ТС] #5
я исправил но ошибки те же
0
NoMasters
Псевдослучайный
1754 / 1097 / 72
Регистрация: 13.09.2011
Сообщений: 3,134
18.01.2012, 01:55 #6
Значит, ты исправил что-то не то Исправленный код в студию.
0
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 137
18.01.2012, 01:56  [ТС] #7
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
int* Rand_massiv (int N);
void Put_posl_sort (int *a,int N);
int main(){
    int N,a;
 
 
    //fscanf(in,"%d",&N);
    N=9;
    a=Rand_massiv(N);
    Put_posl_sort (a,N);
 
 
    for (int i=0;i<N;++i){
    printf ("%d",a[i]);
    }
 
 
 
 
    return 0;
}
////////////////////////////////////////////
int* Rand_massiv (int N){
    int *a;
 
    a=new int[N];
    srand(time(NULL));
    for (int i=0;i<N;++i){
        a[i]=rand()%500;
    }
    return a;
}
/////////////////////////////////////////////
void Put_posl_sort (int *a, int N){
    int tmp;
    if (a[0]>a[1]){
        tmp=a[0];
        a[0]=a[1];
        a[1]=tmp;
    }
    for (int i=2;i<N;++i){
        if (a[i]>a[i-1]){
            continue;
        }
        int k=0;
        while (a[i]>a[k]){
            ++k;
        }
      tmp=a[k];
        a[k]=a[i];
        int l=i;
        while (k+2<=l){
            a[l]=a[l-1];
            --l;
        }
        a[k+1]=tmp;
    }
}
0
NoMasters
Псевдослучайный
1754 / 1097 / 72
Регистрация: 13.09.2011
Сообщений: 3,134
18.01.2012, 01:59 #8
Цитата Сообщение от NoMasters Посмотреть сообщение
а в main должно было быть указателем.
C++
1
int N, *a;
0
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 137
18.01.2012, 02:06  [ТС] #9
Спасибо, работает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2012, 02:06
Привет! Вот еще темы с ответами:

Ошибки в функции что не так? - C++
#include &lt;iostream&gt; using namespace std; int fadd(int,int); int fmul(int,int); int fsub(int,int); int fdiv(int,int); int main()...

Ошибки в функции что не так? - C++
#include &lt;iostream&gt; using namespace std; long int hms_to_secs(long int,long int,long int); int main(); { int h,m,s; ...

Функции в с++. Ошибки -1.#INF и 1.#QNAN - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; #define M_PI 3.1415 #define h 0.5 using namespace std; double tab() ...

Исправить ошибки в работе функции - C++
Помогите, не работает, компилятор ошибки не выдает. Проблема, кажется, возникает при вызове функции genPass :wall: # include &lt;iostream&gt;...


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

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

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