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

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

Восстановить пароль Регистрация
 
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 133
18.01.2012, 01:28     Ошибки в функции #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
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 ===|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2012, 01:28     Ошибки в функции
Посмотрите здесь:

Функции Ошибки C++
C++ Ошибки в функции что не так?
Странные ошибки в функции C++
Ошибки в функции что не так? C++
Типизация,ошибки в функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
18.01.2012, 01:39     Ошибки в функции #2
а в main должно было быть указателем. И прототип должен соответствовать функции. То есть возвращать указатель.
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 133
18.01.2012, 01:44  [ТС]     Ошибки в функции #3
А прототип разве не возвращает указатель?
return a;
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
18.01.2012, 01:46     Ошибки в функции #4
Прототип — это то, что в строках 6-7. Rand_massiv у тебя возвращает int*
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 133
18.01.2012, 01:53  [ТС]     Ошибки в функции #5
я исправил но ошибки те же
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
18.01.2012, 01:55     Ошибки в функции #6
Значит, ты исправил что-то не то Исправленный код в студию.
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 133
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;
    }
}
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
18.01.2012, 01:59     Ошибки в функции #8
Цитата Сообщение от NoMasters Посмотреть сообщение
а в main должно было быть указателем.
C++
1
int N, *a;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2012, 02:06     Ошибки в функции
Еще ссылки по теме:

C++ Функции в с++. Ошибки -1.#INF и 1.#QNAN
C++ Глобальные функции, найти ошибки в коде
Ошибки в программе интерполяции функции C++

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

Или воспользуйтесь поиском по форуму:
koperfild
9 / 9 / 3
Регистрация: 04.12.2011
Сообщений: 133
18.01.2012, 02:06  [ТС]     Ошибки в функции #9
Спасибо, работает
Yandex
Объявления
18.01.2012, 02:06     Ошибки в функции
Ответ Создать тему
Опции темы

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