Ошибка ошибки сегментации в C при редактировании int в цикле while - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь написать программу на C, которая сводит число к минимальным факторам. Пока что я написал следующий код:

#include <stdio.h>
void main(){
    unsigned int parameter = 30, number, divisore = 2, contatore = 0, i = 0;
    int divisori[(number/2) + 1];
    number = parameter;
    while(divisore <= (number / 2)){
        if(number % divisore == 0){
            contatore++;
            number = number / divisore;
        }
        else{
            divisori[divisore] = contatore;
            contatore = 0;
            divisore++;
        }
    }
}

Но у меня ошибка сегментации. Кажется, проблема связана со строкой:

number = number / divisore;

Как будто я заменяю его на:

printf("New number: %d", number/divisore);

Программа работает. число / делитель будет int, так как число% делитель равно 0, поэтому не может быть, потому что операция возвращает десятичное число, но я не могу найти, в чем проблема. Не могли бы вы помочь мне?

1 Ответ

0 голосов
/ 27 октября 2018

В коде, который вы разместили, объявлено целое число number, но не инициализировано при выполнении строки int divisori[(number/2) + 1];, что приводит к ошибке

...