![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
Bo2nik |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Реальное имя: Никита Репутация: ![]() ![]() ![]() |
Недавно стали проходить язык С, написал программу сортировки массива через указатели. Выдает ошибки:
1. g:\на си\sort_bubble\sort_bubble.cpp(13): error C2143: syntax error : missing ';' before '{' 2. g:\на си\sort_bubble\sort_bubble.cpp(12): error C2059: syntax error : '*' Если убрать "*" то это уже получается не через указатели или как? Помогите пожалуйста. Код #include "stdafx.h" #include "stdio.h" void bubbleSort(int a[], int col) { int b=0; for (int i=1; i<col; i++) { for (int j=0; j<col-i; j++) { if *(a+j)>*(a+j+1) { b=*(a+j); *(a+j)=*(a+j+1); *(a+j+1)=b; } } } } void main() { int i, j; printf ("<SORT ARRAY>\n"); int a[5]; i=0; while (i<5) { printf ("Enter %d element array\n",i); scanf ("%d",*(a+i)); i++; } i=0; printf ("ORIGINAL ARRAY ->\n"); while (i<5) { printf("%d element = %d\n",i,*(a+i)); i++; } bubbleSort( a, 5 ); printf ("ARRAY AFTER SORT ->\n"); for ( i = 0; i < 5; i ++ ) { printf ("%d element = %d\n",i,*(a+i)); } } Сообщение отредактировано: Bo2nik - 19.03.2008 15:56 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ты просто не взял в скобки все, что нужно:
if ((*(a+j))>(*(a+j+1))) Добавлено через 1 мин. P.S. Программа (если это именно C, а не С++) компилироваться не должна - описание переменных должно быть только ДО начала блока операторов, у тебя же локальные переменные описываются в операторе цикла... |
Bo2nik |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Реальное имя: Никита Репутация: ![]() ![]() ![]() |
Ты просто не взял в скобки все, что нужно: if ((*(a+j))>(*(a+j+1))) Добавлено через 1 мин. P.S. Программа (если это именно C, а не С++) компилироваться не должна - описание переменных должно быть только ДО начала блока операторов, у тебя же локальные переменные описываются в операторе цикла... Ээээ... точно чет, я, не посмотрел. Так скобки поставил теперь такая фигня вылезает: Build log was saved at "file://g:\На Си\sort_bubble\Debug\BuildLog.htm" sort_bubble - 0 error(s), 1 warning(s) Когда запускаю программу, всё идет как надо, но после того как я веду первый элемент вылетает ошибка: "Отправлять - Не отправлять" и всё. PS Когда я убирал "*" с условия if, т.е. обращался не через указатели, то всё нормально работало. Даже незнаю, что делать. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата после того как я веду первый элемент вылетает ошибка: Угу, все правильно...Цитата scanf ("%d",*(a+i)); /* Ну, и куда ты записываешь введенное значение? */ надо вот так: scanf ("%d",(a+i)); потому что должен передаваться адрес переменной, а не значение... |
Bo2nik |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Реальное имя: Никита Репутация: ![]() ![]() ![]() |
Ух ты заработало !!! Даже сам не понял, че написал про этот scanf !!! Спасибо.
|
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 21:48 |