Member 13476360 Ответов: 1

Я не мог заставить свой код суммировать делители


Я делал программу,которая берет максимальное число (n) с клавиатуры и находит делители и сумму этих делителей для каждого целого числа от 1 до n, когда я не использовал часть суммы моего кода, она печатается идеально, но когда я пытаюсь печатать с суммой, она дает неправильные числа:

он отлично работает :
<pre>int main()
{
	
	int x,n,sum,c;
	printf("Enter a maximum number :");
	scanf("%d",&n);
	

	for(c=1;c<=n;c++)
	{
	
		for (x = 1; x <= c; x++)
		{
			if(c%x == 0)
			{		
			printf("%d ",x);
			
		
			}

		}
		printf("\n");
	}

}


Что я уже пробовал:

когда я пытаюсь это сделать, чтобы добавить часть суммы, она дает неправильные числа:
int main()
{
	
	int x,n,sum,c;
	printf("Enter a maximum number n :");
	scanf("%d",&n);
	

	for(c=1;c<=n;c++)
	{
	
		for (x = 1; x <= c; x++)
		{
			if(c%x == 0)
			{		
			printf("%d ",x);
			sum=0;
			sum=sum+x;
			printf("%d",sum);
			
		
			}

		}
		printf("\n");
	}

ZurdoDev

Отладьте его. Отладка-это самое важное, что вы когда-либо будете делать в программировании, поэтому научитесь это делать.

1 Ответов

Рейтинг:
4

OriginalGriff

Что ж... отладчик довольно быстро покажет вам проблему, но вы должны быть в состоянии увидеть ее сами, быстро взглянув на код.

for (x = 1; x <= c; x++)
{
    if(c%x == 0)
    {
    printf("%d ",x);
    sum=0;
    sum=sum+x;
    printf("%d",sum);
    }
Подсказка: в чем заключается ценность sum когда вы пытаетесь добавить к нему последнее значение?

Перемещение одной строки кода исправит это.


CPallini

5.