|
|
  |
QSORT |
|
|
|
Oct 21 2007, 09:46
|

Профессионал
    
Группа: Свой
Сообщений: 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);
}
|
|
|
|
|
Oct 21 2007, 11:12
|

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

|
Цитата(zltigo @ Oct 21 2007, 14:05)  Где убрать, а где и добавить парочку  . Еще с вызовом функции ознакомиться. В общем Автору следует c "Hello World!" и учебником для начала "побороться", пожалуй  . Вообщето это текст примера из PIC C int compar(const void *arg1,const void *arg2) Ну убрал результат ?Кстати чем гнуть пальцы продемонстрируйте интеллект.
|
|
|
|
|
Oct 21 2007, 19:05
|

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

|
Цитата(Евгений Германович @ Oct 21 2007, 13:46)  Народ!Окажите помощ.Не могу одолеть функцию qsort.что бы не пробовал,кроме ошибок ничего. Ув. Евгений Германович, вы все-таки прислушайтесь к призывам, и почитайте труды достойных мужей по C/C++. Не сочтите это пожелание за наезд, ни в коем случае. А код лучше записать так (не компилировал, может опечатался, но пытался внимательно  ): Код #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); }
--------------------
شامل
|
|
|
|
|
Oct 21 2007, 22:22
|

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

|
Цитата(Edmundo @ Oct 21 2007, 22:05)  но пытался внимательно  ): Еще одну ";" надо добавить  . Ну а вообще это так: Код #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)  продемонстрируйте интеллект. Интелект это слишком, интеллект это Вам потом потребуется. Пока нужны банальные знания самых основ языка  'C' и основ английского, дабы понять сообщения компилятора.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 22 2007, 04:41
|

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

|
Цитата(zltigo @ Oct 22 2007, 02:22)  Еще одну ";" надо добавить  . Да, виноват, промахнулся... Цитата(zltigo @ Oct 22 2007, 02:22)  Ну а вообще это так... Ну, это уже оптимизация и стилизация
--------------------
شامل
|
|
|
|
|
Oct 22 2007, 12:20
|

Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Oct 22 2007, 14:32
|

Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Oct 23 2007, 12:18
|

Профессионал
    
Группа: Свой
Сообщений: 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 ); }
|
|
|
|
|
Oct 23 2007, 12:39
|

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

|
Цитата(Евгений Германович @ Oct 23 2007, 15:18)  Это ваш текст. Нет. Это Ваш. Мой на одну строку кода меньше  Код #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 ); } Цитата Может вы не в курсе но пробел это тоже строка. Обалдеть! А мужики-то не знают  . Ну и где в приведенном мной ранее тексте 24 строка, хоть с пробелами, хоть нет. Цитата Если вы выставляете текст программы ,то немешало бы вначале его проверить. Я способен написать исходник и много большего объема без ошибок, тем более, без синтаксических  . Ищите проблемы с набиванием текста у себя.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|