Как я могу назначить конкретные значения для массива? - PullRequest
0 голосов
/ 27 декабря 2018

Как я могу сохранить все делители в массиве? ??

эта программа показывает делители числа и затем решает, простое ли оно и / или идеальное ... Проблема в том, что я не могухранить значения делителей в массиве a.

#include <stdio.h>
#include <stdlib.h>

int main()
{   int DivCount=0,n,i,j,a[100],sum=0;

    printf("Please Enter the Number : ");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    if (n%i==0){
            a[i-1]=i;
              DivCount++;
                }

    printf("\nThe Number Has %d divisors : ",DivCount);
    for(i=0;i<DivCount;i++)
    printf("%d\t",a[i]);

    if (DivCount==2)
        printf("\nThe Number is Prime");
    else
        printf("\nThe Number is NOT Prime");

     for(i=0;i<DivCount;i++)
        sum+=a[i];
     printf("\nThe Sum of the divisors is :%d",sum);

    if (sum==n)
        printf("\nThe Number is Perfect");
    else
        printf("\nThe Number is NOT Perfect");

    return 0;
}

например (n = 6) массив должен быть = {1,2,3,6}

1 Ответ

0 голосов
/ 27 декабря 2018
#include <stdio.h>
#include <stdlib.h>

int main()
{   int DivCount=0,n,i,j,a[100],sum=0;

    printf("Please Enter the Number : ");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    if (n%i==0){

        //a[i-1]=i;  <--- check this
        a[DivCount]=i;
        DivCount++;
    }

    printf("\nThe Number Has %d divisors : ",DivCount);
    for(i=0;i<DivCount;i++)
    printf("%d\t",a[i]);

    if (DivCount==2)
        printf("\nThe Number is Prime");
    else
        printf("\nThe Number is NOT Prime");

     for(i=0;i<DivCount;i++)
        sum+=a[i];
     printf("\nThe Sum of the divisors is :%d",sum);

    if (sum==n)
        printf("\nThe Number is Perfect");
    else
        printf("\nThe Number is NOT Perfect");

    return 0;
}
...