Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Zla9_Kolu4ka
2 / 2 / 1
Регистрация: 28.08.2013
Сообщений: 414
1

Ошибка "Необъявленный идентификатор" препятствует успешной компиляции

04.07.2014, 00:13. Просмотров 976. Ответов 10
Метки нет (Все метки)

Подправьте код, что то не компилируется, не пойму в чем дело, на .cpp норм, а .с выдает ошибки
int max(int a, int b);синтаксическая ошибка: тип
Bubble(data,SIZE, min);min: необъявленный идентификатор



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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define SIZE    10
 
 
int max(int a, int b);
int min(int a, int b);
void Bubble(int* d, int n, int (*comp)(int,int));
 
 
 
void Bubble(int* d, int n, int (*comp)(int,int)){
    int i,j;
    int buf;
    for(i=1;i<n;i++)
        for(j=0;j<n-i;j++)
            if(comp(d[j],d[j+1])){
                buf=d[j];d[j]=d[j+1]; d[j+1]=buf;
            }
}
 
 
int max(int a, int b){
    return a<b;
}
 
 
int min(int a, int b){
    return !max(a,b);
}
 
void main(){
    int i;
    int data[SIZE]={12,5,-6,25,3,0,7,34,-8,-88};
 
    Bubble(data,SIZE, min);
    for(i=0;i<SIZE;i++) printf("%d  ", data[i]);
    printf("\n");
 
    system("pause");
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2014, 00:13
Ответы с готовыми решениями:

Ошибка компиляции "malloc: идентификатор не найден"
Нужно чтобы пользователь сам вводил элементы a,b,c,d,k.(и эти элементы должны быть только цифрами....

Как исправить ошибку "Необъявленный идентификатор"?
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; /* подсчет вводимых символов; 2-я...

Как исправить ошибку "В: необъявленный идентификатор"?
Подскажите пожалуйста, как исправить : В: необъявленный идентификатор Код: # include...

Ошибка: необъявленный идентификатор
for(int i = 0; i &lt;= number; i++) { sum = sum + i; } Среда разработки MVC++ 2010. Выдает...

Ошибка "calculate: идентификатор не найден", или как можно вывести значения, полученные в функции
#include&lt;stdio.h&gt; #include&lt;locale&gt; #define _USE_MATH_DEFINES #include&lt;math.h&gt; int main() {...

10
Kerry_Jr
Эксперт PHP
2211 / 2007 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
04.07.2014, 00:26 2
Zla9_Kolu4ka, есть три вопроса:
1. Зачем здесь функция max?
2. Зачем передавать указатель на функцию в функцию Bubble?
3. Какой компилятор?
0
MrCold
862 / 760 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
04.07.2014, 00:42 3
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
1. Зачем здесь функция max?
2. Зачем передавать указатель на функцию в функцию Bubble?
Как это зачем ?
Сортируем на выбор по возрастанию или убыванию.
0
Kerry_Jr
Эксперт PHP
2211 / 2007 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
04.07.2014, 01:01 4
Цитата Сообщение от MrCold Посмотреть сообщение
Как это зачем ?
Я просто в коде не вижу толкового использования первых двух пунктов. Ну да ладно, не суть.
А про компилятор спросил, потому что у меня все без ошибок проходит.
0
04.07.2014, 01:01
MrCold
862 / 760 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
04.07.2014, 01:27 5
компилируете как с++ код , поэтому нет ошибок.


ну с одним компаратором проходит
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define SIZE    10
 
 
 int comp(const void *a, const void *b){
    int aa = *(const int* )a;
    int bb = *(const int* )b;
    return aa < bb ? -1 : (aa > bb);
}
 
 
void Bubble(int* d, int n, int (*comp)( const void* a, const void* b)){
    int i,j;
    int buf;
    for(i=1;i<n;i++)
        for(j=0;j<n-i;j++)
            if(comp(&d[j],&d[j+1]) > 0)
            {
                buf=d[j];
                d[j]=d[j+1];
                d[j+1]=buf;
            }
}
 
 
 
void main(){
    int i;
    int data[SIZE]={12,5,-6,25,3,0,7,34,-8,-88};
 
    Bubble(data,SIZE, comp);
    for(i=0;i<SIZE;i++) printf("%d  ", data[i]);
    printf("\n");
 
    system("pause");
}
1
Kerry_Jr
Эксперт PHP
2211 / 2007 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
04.07.2014, 01:35 6
Цитата Сообщение от MrCold Посмотреть сообщение
компилируете как с++ код , поэтому нет ошибок.
Ну только если gcc (не g++!) умеет плюсы компилировать.
0
Zla9_Kolu4ka
2 / 2 / 1
Регистрация: 28.08.2013
Сообщений: 414
04.07.2014, 01:45  [ТС] 7
ну с одним компаратором проходит
то, что новый код идет-хорошо, а старый почему не хотит работать?
0
MrCold
862 / 760 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
04.07.2014, 01:52 8
почему то имена функций min max не пропускает , а так ?
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
#include <stdio.h>
#include <stdlib.h>
 
#define SIZE    10
 
 
int max_compare(const void* a, const void* b);
int min_compare(const void* a, const void* b);
void Bubble(int* d, int n, int (*comp)(const void* a, const void* b));
 
 
 
 
void main(){
    int i;
    int data[SIZE]={12,5,-6,25,3,0,7,34,-8,-88};
 
    Bubble(data,SIZE, min_compare);
    for(i=0;i<SIZE;i++) printf("%d  ", data[i]);
    printf("\n");
 
    system("pause");
}
 
void Bubble(int* d, int n, int (*comp)(const void* a, const void* b)){
    int i,j;
    int buf;
    for(i=1;i<n;i++)
        for(j=0;j<n-i;j++)
            if(comp(&d[j],&d[j+1])){
                buf=d[j];d[j]=d[j+1]; d[j+1]=buf;
            }
}
 
 
int max_compare(const void* a, const void* b){
    int aa = *(const int* )a;
    int bb = *(const int* )b;
    return aa<bb;
}
 
 
int min_compare(const void* a, const void* b){
    return !max_compare(a,b);
}
0
Zla9_Kolu4ka
2 / 2 / 1
Регистрация: 28.08.2013
Сообщений: 414
04.07.2014, 02:02  [ТС] 9
математическая библиотека подключена, как я сразу не догадался, думать ночью уже не охота, сразу на форум

хотя нет, математичскую библиотеку убрал все равно не работает, просто переименовал все max-Ы и min-Ы на maxx и minn и все норм, почему так?

Понял, в stdlib.h есть max и min
0
MrCold
862 / 760 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
04.07.2014, 02:07 10
Цитата Сообщение от Zla9_Kolu4ka Посмотреть сообщение
почему так?
надо инклюды смотреть
Цитата Сообщение от MrCold Посмотреть сообщение
#include <stdio.h>
#include <stdlib.h>
где то там ссылка на #include <math.h>
понятия не имею зачем
0
Zla9_Kolu4ka
2 / 2 / 1
Регистрация: 28.08.2013
Сообщений: 414
04.07.2014, 02:09  [ТС] 11
надо инклюды смотреть
без #include <stdlib.h> и system("pause") нормально идет
где то там ссылка на #include <math.h>
понятия не имею зачем
убрал #include <math.h> - забыл удалить просто
0
04.07.2014, 02:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2014, 02:09

Ошибка в программе Error C2065: M_E: необъявленный идентификатор
Всем привет. Помогите пожалуйста исправить ошибку. В визуал студио 2008 выдаёт : c:\documents and...

Ошибка компиляции "Error C2660 'fopen_s': function does not take 2 arguments"
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; struct meniu { char...

Ошибка "expected ‘;’, ‘,’ or ‘)’ before numeric constant" при компиляции кода
Здравствуйте! Просьба помочь разобраться с ошибкой. Изучаю Си по книге Б. Кернигана и Д. Ритчи...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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