Найти делители целого числа и записать их в массив - C (СИ)

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

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

У меня проблема в том, что массив делителей MasD записываются непонятные числа. Коротко о моем коде: если остаток от деления на j равен 0, то в массив записывается j, иначе 0
Листинг программы
  1. for (j=(-fabs(S); j<fabs(S); j++ )
  2. {
  3. if (j!= 0 )
  4. {
  5. count = count + 1;
  6. if (S % j == 0)
  7. {
  8. MasD[count] = j;
  9. }
  10. else MasD[count] = 0;
  11. }
  12. }
Как можно написать по-другому или что у меня не так?

Решение задачи: «Найти делители целого числа и записать их в массив»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. int main(void)
  5. {
  6. int *MasD;
  7.     int count=0;
  8.     int j;
  9.     int h;
  10.     int S=8;
  11.  
  12.  
  13.  
  14.     for (j=(-abs(S)); j<=abs(S); j++ ) {
  15.         if (j!= 0 && S%j==0)        
  16.         count = count + 1;
  17.   }
  18.   MasD=(int*)malloc(count*sizeof(int));
  19.  
  20.     for (h=0,j=(-abs(S));j<=abs(S);j++){
  21.         if (j!=0 && S%j==0){
  22.             MasD[h]=j;
  23.             printf("%4d",MasD[h]);
  24.             h++;
  25.         }
  26.     }
  27.        free (MasD);
  28.         return 0;
  29.     }

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


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

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

15   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы