Помощь - Поиск - Пользователи - Календарь
Полная версия: сортировка пузырьком, что за ошибка
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Дёнис
Всем привет, подскажите пожалуйста как исправить данную ошибку.. Это программа на сортировку методом пузырька.. код вроде верный, а ругается на неописанную константу вроде.. 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;
}
Michael_Rybak
gcc компилит нормально.
volvo
int size;
не может использоваться как размер массива, это переменная, а должна быть - константа, о чем тебе и говорит компилятор...
Michael_Rybak
А вот кстати gnu нормально работает с неконстантными размерами. Очень был удивлен, обнаружив недавно.
volvo
Это только GNU имеет такое расширение... Вообще-то, это отклонение от стандарта, поэтому я не пользуюсь этой вещью...
Michael_Rybak
+1, я тоже не пользуюсь.
Дёнис
спасибо volvo сейчас буду исправлять.. good.gif

Michael_Rybak объясните деревенскому что есть gcc lol.gif
volvo
ГНУтый компилятор:
Gcc - GNU Compiler Collection
Дёнис
пасиба, буду знать... прогу пока так и не смог исправить до работоспособности почему-то... сейчас буду в вашем gcc пробовать)
volvo
Цитата(Дёнис @ 19.12.2006 18:07)
прогу пока так и не смог исправить до работоспособности почему-то...
Все, что тебе нужно было сделать - заменить массив на динамический (при использовании С++ это будет выглядеть так):


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

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


Если ты используешь чистый С - соответственно, вместо new используй malloc ...
Дёнис
всё, исправил, спасибо огромное volvo сам бы в этом месте не додумался бы наверно.. blum.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.