Найти делители целого числа и записать их в массив - C (СИ)
Формулировка задачи:
У меня проблема в том, что массив делителей MasD записываются непонятные числа.
Коротко о моем коде: если остаток от деления на j равен 0, то в массив записывается j, иначе 0
Как можно написать по-другому или что у меня не так?
for (j=(-fabs(S); j<fabs(S); j++ ) { if (j!= 0 ) { count = count + 1; if (S % j == 0) { MasD[count] = j; } else MasD[count] = 0; } }
Решение задачи: «Найти делители целого числа и записать их в массив»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <stdlib.h> int main(void) { int *MasD; int count=0; int j; int h; int S=8; for (j=(-abs(S)); j<=abs(S); j++ ) { if (j!= 0 && S%j==0) count = count + 1; } MasD=(int*)malloc(count*sizeof(int)); for (h=0,j=(-abs(S));j<=abs(S);j++){ if (j!=0 && S%j==0){ MasD[h]=j; printf("%4d",MasD[h]); h++; } } free (MasD); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д