Обильные - код с дефектным номером не показывает результаты - PullRequest
0 голосов
/ 29 октября 2010

У меня есть этот код от моего профессора, и он касается поиска обильных и дефектных номеров.Число x эффективно, если сумма всех целочисленных делителей, кроме самого x, меньше x.Если оно больше, чем х, то это в изобилии.Там нет ошибок компиляции, и кажется, что все в порядке, но он просто ничего не печатает, он не дает никакого результата.Зачем ?Что не так?

#include <stdio.h>

int main(void)
{
        int x=1,y=1;
        int sum=0;
        while(x<100) 
        {
                while(y<x) 
                {
                        if(x%y==0) {
                                sum=sum+y;
                                y++;
                        }
                }
                x++;
                sum=0;
                y=1;
        }
        return 0;
}

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

Ответы [ 2 ]

7 голосов
/ 29 октября 2010

Ваш код не имеет печатных операторов.Вы, вероятно, хотите использовать функцию printf.

2 голосов
/ 29 октября 2010

Проблема здесь:

        while(y<x) 
        {
                if(x%y==0) {
                        sum=sum+y;
                        y++;
                }
        }

Y следует продвигать на каждой итерации:

            while(y<x) 
            {
                    if(x%y==0) {
                            sum=sum+y;
                    }
                    y++;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...