реклама на сайте
подробности

 
 
5 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> QSORT
Евгений Германов...
сообщение Oct 21 2007, 09:46
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Народ!Окажите помощ.Не могу одолеть функцию qsort.что бы не пробовал,кроме ошибок ничего.
#include <stdlib.h>
int nums[5]={ 2,3,1,5,4};

int compar(const void *arg1,const void *arg2);


{
if ( * (int *) arg1 < ( * (int *) arg2) return –1

else if ( * (int *) arg1 == ( * (int *) arg2) return 0

else return 1;

}








void main() {

qsort ( nums, 5, sizeof(int), compar);

}
Go to the top of the page
 
+Quote Post
evc
сообщение Oct 21 2007, 10:51
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266



Цитата(Евгений Германович @ Oct 21 2007, 13:46) *
...
int compar(const void *arg1,const void *arg2); ...


Нужно убрать точки с запятой, надеюсь понятно почему! smile.gif

Сообщение отредактировал evc - Oct 21 2007, 10:54


--------------------
УЭР
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 21 2007, 11:05
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evc @ Oct 21 2007, 13:51) *
Нужно убрать точки с запятой...

Где убрать, а где и добавить парочку sad.gif. Еще с вызовом функции ознакомиться. В общем Автору следует c "Hello World!" и учебником для начала "побороться", пожалуй sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Oct 21 2007, 11:12
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Цитата(zltigo @ Oct 21 2007, 14:05) *
Где убрать, а где и добавить парочку sad.gif. Еще с вызовом функции ознакомиться. В общем Автору следует c "Hello World!" и учебником для начала "побороться", пожалуй sad.gif.

Вообщето это текст примера из PIC C
int compar(const void *arg1,const void *arg2)
Ну убрал результат ?Кстати чем гнуть пальцы продемонстрируйте интеллект.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Oct 21 2007, 15:24
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Евгений Германович @ Oct 21 2007, 15:12) *


Тут дело не в qsort, а в многочисленных грамматических ошибках в коде функции compar.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Oct 21 2007, 19:05
Сообщение #6


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(Евгений Германович @ Oct 21 2007, 13:46) *
Народ!Окажите помощ.Не могу одолеть функцию qsort.что бы не пробовал,кроме ошибок ничего.

Ув. Евгений Германович, вы все-таки прислушайтесь к призывам, и почитайте труды достойных мужей по C/C++. Не сочтите это пожелание за наезд, ни в коем случае. А код лучше записать так (не компилировал, может опечатался, но пытался внимательно smile.gif):

Код
#include <stdlib.h>
int nums[5]={2,3,1,5,4};

int compar(const void *arg1,const void *arg2)
{
    if (  *((int *) arg1) <  *((int *) arg2)  )
        return –1
    else if (  *((int *) arg1) == *((int *) arg2)  )
        return 0;
    else
        return 1;
}

void main()
{
    qsort(nums, 5, sizeof(int), compar);
}


--------------------
شامل
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 21 2007, 22:22
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Edmundo @ Oct 21 2007, 22:05) *
но пытался внимательно smile.gif):

Еще одну ";" надо добавить sad.gif.
Ну а вообще это так:
Код
#include <stdlib.h>
#define A_SIZE 5
int nums[A_SIZE] = { 2,3,1,5,4 };

int compar( const void *arg1, const void *arg2 )
{
    return( *(int *)arg1 - *(int *)arg2 );
}

void main()
{
    qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );
}



Цитата(Евгений Германович @ Oct 21 2007, 14:12) *
продемонстрируйте интеллект.

Интелект это слишком, интеллект это Вам потом потребуется. Пока нужны банальные знания самых основ языка sad.gif 'C' и основ английского, дабы понять сообщения компилятора.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Oct 22 2007, 04:41
Сообщение #8


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(zltigo @ Oct 22 2007, 02:22) *
Еще одну ";" надо добавить sad.gif.

Да, виноват, промахнулся...

Цитата(zltigo @ Oct 22 2007, 02:22) *
Ну а вообще это так...

Ну, это уже оптимизация и стилизация a14.gif


--------------------
شامل
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Oct 22 2007, 12:20
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Program Files\PICC\CHUDO\asdf\asd1.mcs".
Clean: Done.
Executing: "C:\Program Files\PICC\Ccsc.exe" "asd1.c" +FH +DF +LN +T -A +M +Z +Y=9 +EA
*** Error 28 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 24(24,28): Expecting an identifier
*** Error 48 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 24(25,29): Expecting a (
*** Error 81 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 24(42,46): Expecting a basic type
*** Error 48 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 24(48,52): Expecting a (
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 25(1,2): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(5,11): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(11,12): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(13,14): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(14,15): Expecting a declaration
*** Error 28 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(20,21): Expecting an identifier
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(26,27): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(28,29): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(29,30): Expecting a declaration
*** Error 28 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(35,36): Expecting an identifier
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(41,42): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 26(42,43): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 27(1,2): Expecting a declaration
*** Error 51 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 31(64,70): A numeric expression must appear here
18 Errors, 0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Mon Oct 22 18:20:07 2007

НУ и....?Вы думаете я от нечего делать обратился.Тот текст,что я вытащил-это пример из хелпа.

Сообщение отредактировал Евгений Германович - Oct 22 2007, 12:22
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 22 2007, 12:33
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Евгений Германович @ Oct 22 2007, 15:20) *
Тот текст,что я вытащил-это пример из хелпа.

И мне и компилятору все едино, из какого места Вы его вытащили. Как минимум, синтаксические ошибки ПРИДЕТСЯ править.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Oct 22 2007, 14:32
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Эти ошибки получены при компиляции предложенного вами текста программы.#include <stdlib.h>
#define A_SIZE 5
int nums[A_SIZE] = { 2,3,1,5,4 };

int compar( const void *arg1, const void *arg2 )
{
return( *(int *)arg1 - *(int *)arg2 );
}

void main()
{
qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );
}

Сообщение отредактировал Евгений Германович - Oct 22 2007, 14:34
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 22 2007, 14:42
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Евгений Германович @ Oct 22 2007, 17:32) *
Эти ошибки получены при компиляции предложенного вами текста программы.

smile.gif smile.gif smile.gif Ну и какая строка (из максимум пятнадцати!) моего текста имеет номер 24?
Ну а то, что Вы с таким-же успехом, натаскали рядом ничего незначащих для Вас буковок, то это другая проблема.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Oct 23 2007, 12:18
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Может вы не в курсе но пробел это тоже строка.
Если вы выставляете текст программы ,то немешало бы вначале его проверить.
Clean: Deleting intermediary and output files.
Clean: Deleted file "asd1.ERR".
Clean Warning: File "C:\Program Files\PICC\CHUDO\asdf\asd1.o" doesn't exist.
Clean: Deleted file "asd1.SYM".
Clean: Deleted file "asd1.LST".
Clean: Deleted file "asd1.PJT".
Clean: Deleted file "asd1.TRE".
Clean: Deleted file "asd1.STA".
Clean: Deleted file "asd1.COF".
Clean: Deleted file "C:\Program Files\PICC\CHUDO\asdf\asd1.mcs".
Clean: Done.
Executing: "C:\Program Files\PICC\Ccsc.exe" "asd1.c" +FH +DF +LN +T -A +M +Z +Y=9 +EA
*** Error 28 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 9(24,28): Expecting an identifier
*** Error 48 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 9(25,29): Expecting a (
*** Error 81 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 9(42,46): Expecting a basic type
*** Error 48 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 9(48,52): Expecting a (
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 10(1,2): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(5,11): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(11,12): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(13,14): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(14,15): Expecting a declaration
*** Error 28 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(20,21): Expecting an identifier
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(26,27): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(28,29): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(29,30): Expecting a declaration
*** Error 28 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(35,36): Expecting an identifier
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(41,42): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 11(42,43): Expecting a declaration
*** Error 43 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 12(1,2): Expecting a declaration
*** Error 51 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 16(64,70): A numeric expression must appear here
18 Errors, 0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Tue Oct 23 18:17:24 2007



Это ваш текст.

#include "C:\Program Files\PICC\CHUDO\asdf\asd1.h"



#include <stdlib.h>
#define A_SIZE 5
int nums[A_SIZE] = { 2,3,1,5,4 };

int compar( const void *arg1, const void *arg2 )
{
return( *(int *)arg1 - *(int *)arg2 );
}

void main()
{
qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );
}
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 23 2007, 12:39
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Евгений Германович @ Oct 23 2007, 15:18) *
Это ваш текст.

Нет. Это Ваш. Мой на одну строку кода меньше smile.gif
Код
#include <stdlib.h>
#define A_SIZE 5
int nums[A_SIZE] = { 2,3,1,5,4 };
int compar( const void *arg1, const void *arg2 )
{    return( *(int *)arg1 - *(int *)arg2 );
}
void main()
{    qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );
}

Цитата
Может вы не в курсе но пробел это тоже строка.

Обалдеть! А мужики-то не знают smile.gif.
Ну и где в приведенном мной ранее тексте 24 строка, хоть с пробелами, хоть нет.
Цитата
Если вы выставляете текст программы ,то немешало бы вначале его проверить.

Я способен написать исходник и много большего объема без ошибок, тем более, без синтаксических smile.gif.
Ищите проблемы с набиванием текста у себя.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Oldring
сообщение Oct 23 2007, 12:51
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Евгений Германович @ Oct 23 2007, 16:18) *
#include "C:\Program Files\PICC\CHUDO\asdf\asd1.h"


Удалите этот include и попробуйте скомпилировать.
Кстати, правильно писать #include "C:\\Program Files\\PICC\\CHUDO\\asdf\\asd1.h"


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

5 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 17:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01425 секунд с 7
ELECTRONIX ©2004-2016