Найти делители целого числа и записать их в массив - 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;
    }

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


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

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

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