IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> сортировка пузырьком, что за ошибка, C (си)
Дёнис
сообщение 19.12.2006 17:37
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Всем привет, подскажите пожалуйста как исправить данную ошибку.. Это программа на сортировку методом пузырька.. код вроде верный, а ругается на неописанную константу вроде.. dry.gif


#include <stdio.h>
#include <math.h>
int main () 
{ 
  int size;
  printf("size="); 
  scanf("%d",&size);
{ int i, j, bound=size-1, exchange;
  double row[size], temp;
  for (i=0; i<size; i++)
   row[i]=i/(2.0+i)-sin(i*i/(2.0+i));
  for (i=0; i<size; i++)
    printf("%crow[%d]=%5.2f",i%4?'\t':'\n',i,row[i]);
  do { 
    for (j=0, exchange=0; j < bound; j++)
      if (row[j]>row[j+1])
        { temp=row[j];
          row[j]=row[j+1];
          row[j+1]=temp;
          exchange=j+1;
        } 
      bound=exchange-1;
      }
  while (bound > 0);
  printf("\nResult:");       
  for (i=0; i<size; i++)
    printf("%crow[%d]=%5.2f",i%4?'\t':'\n',i,row[i]);
}
  return 0;
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 19.12.2006 17:46
Сообщение #2


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


gcc компилит нормально.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2006 18:16
Сообщение #3


Гость






int size;
не может использоваться как размер массива, это переменная, а должна быть - константа, о чем тебе и говорит компилятор...
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 19.12.2006 18:20
Сообщение #4


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


А вот кстати gnu нормально работает с неконстантными размерами. Очень был удивлен, обнаружив недавно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2006 18:26
Сообщение #5


Гость






Это только GNU имеет такое расширение... Вообще-то, это отклонение от стандарта, поэтому я не пользуюсь этой вещью...
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 19.12.2006 18:27
Сообщение #6


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


+1, я тоже не пользуюсь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Дёнис
сообщение 19.12.2006 18:53
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


спасибо volvo сейчас буду исправлять.. good.gif

Michael_Rybak объясните деревенскому что есть gcc lol.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2006 18:55
Сообщение #8


Гость






ГНУтый компилятор:
Gcc - GNU Compiler Collection
 К началу страницы 
+ Ответить 
Дёнис
сообщение 19.12.2006 19:07
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


пасиба, буду знать... прогу пока так и не смог исправить до работоспособности почему-то... сейчас буду в вашем gcc пробовать)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2006 19:16
Сообщение #10


Гость






Цитата(Дёнис @ 19.12.2006 18:07)
прогу пока так и не смог исправить до работоспособности почему-то...
Все, что тебе нужно было сделать - заменить массив на динамический (при использовании С++ это будет выглядеть так):


  // double row[size], temp; /* Эта строка не нужна */
  double *row, temp;
  row = new double[size]; // Выделяем место под массив

  // после окончания работы с массивом не забудь его освободить ...


Если ты используешь чистый С - соответственно, вместо new используй malloc ...
 К началу страницы 
+ Ответить 
Дёнис
сообщение 19.12.2006 20:11
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


всё, исправил, спасибо огромное volvo сам бы в этом месте не додумался бы наверно.. blum.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 10.08.2025 3:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"