-6

これをコーディングしようとしましたが、実行できません。私のコードで何が問題なのかを確認するのを手伝ってください。私が望む結果、例:

The List of Perfect Number
Give me the lastest number(start from 1): 100
6 28

これは、ポインターを使用するCプログラムです。

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i, x, n, *sum;

    printf("The List of Perfect Number\n");
    printf("Give me the lastest number(start from 1):  ");
    scanf("%d", &n);

    sum = (int *) malloc(sizeof(int));
    *sum = 0;

    for(x=1;x<=n;x++)
    {
        for(i=1; i<x; i++)
        {
            if(x%i == 0)
            {
                *sum+=i;
            }
        }
        if(*sum == x)
            printf("%d", x);
        free(sum);
     return 0;
    }
}
4

1 に答える 1