Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
9 / 9 / 6
Регистрация: 04.12.2011
Сообщений: 137
1

Ошибки в функции

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

Author24 — интернет-сервис помощи студентам
Программа сортировка вставкой с последовательным поиском. Массив создаётся рандомным функцией. Выдаёт ошибку с этой функцией. Не понимаю в чём проблема.
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2012, 01:28
Ответы с готовыми решениями:

В чем причина ошибки при получении адреса функции из dll с помощью функции GetProcAddress?
Здравствуйте.Не могу получить адрес функции из dll с помощью функции GetProcAddress. dll:...

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

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

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

8
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
18.01.2012, 01:39 2
а в main должно было быть указателем. И прототип должен соответствовать функции. То есть возвращать указатель.
0
9 / 9 / 6
Регистрация: 04.12.2011
Сообщений: 137
18.01.2012, 01:44  [ТС] 3
А прототип разве не возвращает указатель?
return a;
0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
18.01.2012, 01:46 4
Прототип — это то, что в строках 6-7. Rand_massiv у тебя возвращает int*
0
9 / 9 / 6
Регистрация: 04.12.2011
Сообщений: 137
18.01.2012, 01:53  [ТС] 5
я исправил но ошибки те же
0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
18.01.2012, 01:55 6
Значит, ты исправил что-то не то Исправленный код в студию.
0
9 / 9 / 6
Регистрация: 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
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
18.01.2012, 01:59 8
Цитата Сообщение от NoMasters Посмотреть сообщение
а в main должно было быть указателем.
C++
1
int N, *a;
0
9 / 9 / 6
Регистрация: 04.12.2011
Сообщений: 137
18.01.2012, 02:06  [ТС] 9
Спасибо, работает
0
18.01.2012, 02:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2012, 02:06
Помогаю со студенческими работами здесь

функции, ошибки и примеры...
Плин, я понял что js штука классная =) вот реши изучать, но моментальный ступр... Сам в шоке как...

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

Типизация,ошибки в функции
написал простую функцию,выполняющяя авторизацию...вот код char entering(char un,int pass,int...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru