Найти делители целого числа и записать их в массив - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д