C 丰富-缺陷编号代码未显示结果

C 丰富-缺陷编号代码未显示结果,c,algorithm,C,Algorithm,我从我的教授那里得到了这段代码,它是关于寻找大量和有缺陷的数字。如果除x本身外的所有整数除数之和小于x,则数字x有效。如果它大于x,那么它是丰富的。 没有编译错误,看起来一切正常,但它只是不打印任何内容,没有得到任何结果。为什么?怎么了 #include <stdio.h> int main(void) { int x=1,y=1; int sum=0; while(x<100) {

我从我的教授那里得到了这段代码,它是关于寻找大量和有缺陷的数字。如果除x本身外的所有整数除数之和小于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;
}
#包括
内部主(空)
{
int x=1,y=1;
整数和=0;

而(x您的代码没有打印语句。您可能想使用printf函数。

问题在于:

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

虽然(yAs dark_)charlie指出,您还希望通过在if之外增加y来避免无限循环。
            while(y<x) 
            {
                    if(x%y==0) {
                            sum=sum+y;
                    }
                    y++;
            }