Ошибка сегментации в массиве констант - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть часть кода. Условия задачи:найти строку с самым большим произведением и отсортировать строку по возрастанию. В определенной строке, компилятор CodeBlocks выдает ошибку сегментации, а именно
error: assignment of read-only location 'a0[numb][j]'
const int k=4;
    const float a0[4][4]={{15, 17, 25, -5}, {75, 464, 12, 9}, {1, 2, 6, -74}, {67, 94, 41, -46}};
    int c,i,j,numb;
    float n, s,maxx;
printf("const\n\n");
            for(i=0;i<k;i++)
            {
                for(j=0;j<k;j++) printf("%5.0f",a0[i][j]);
                printf("\n");
            }
            for(i=0;i<k;i++)
            {
                s=1;
                for(j=0;j<k;j++) s=s*a0[i][j];
                if(s>maxx)
                {
                    maxx=s;
                    numb=i+1;
                }
            }
            printf("\nСамое большое произведение S=%f в строке numb=%hd",maxx,numb);
            for(j=0;j<k-1;j++);
            {
                s=0;
                for(i=j+1;i<k;i++)
                {
                    if(a0[numb][j]>a0[numb][i])
                    {
                        s=a0[numb][j];
                        a0[numb][j]=a0[numb][i]; ///вот тут выдает ошибку сегментации
                        a0[numb][i]=s;
                    }
                }
            }
            printf("\n\nОтсортированная строка: ");
            for(j=0;j<k;j++) printf("%5.0",a0[numb][j]);
            getch();

Решение задачи: «Ошибка сегментации в массиве констант»

textual
Листинг программы
float a0[k][k]={{15, 17, 25, -5}, {75, 464, 12, 9}, {1, 2, 6, -74}, {67, 94, 41, -46}};

Объяснение кода листинга программы

В данном коде объявляется двумерный массив a0 размером kxk, инициализируемый четырьмя вложенными массивами. Каждый вложенный массив состоит из четырех элементов. Значения элементов вложенных массивов присваиваются в цикле. Вложенные массивы инициализируются значениями 15, 17, 25, -5; 75, 464, 12, 9; 1, 2, 6, -74; 67, 94, 41, -46.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5
Похожие ответы