C 使用循环查找除数

C 使用循环查找除数,c,C,我为下面的程序编写了代码,但我不明白如何使用函数。这个问题要求我使用一个返回除数和的函数。请看一看问题和我的代码,并尝试帮助我 问题是: 编写一个C程序,查找并打印所有除数的和 数字介于101和110之间。x的除数是那些数字 x除不带余数(例如,数字10的除数为1, 2,5和10的和=1+2+5+10=18,11的除数 是1和11,它们的和=1+11=12,依此类推)。 您的程序还应该打印除数和最大的数字(101到110) 您的程序应该至少使用一个名为div_sum的函数 获取一个数字并返回其除

我为下面的程序编写了代码,但我不明白如何使用函数。这个问题要求我使用一个返回除数和的函数。请看一看问题和我的代码,并尝试帮助我

问题是:

编写一个C程序,查找并打印所有除数的和 数字介于101和110之间。x的除数是那些数字 x除不带余数(例如,数字10的除数为1, 2,5和10的和=1+2+5+10=18,11的除数 是1和11,它们的和=1+11=12,依此类推)。 您的程序还应该打印除数和最大的数字(101到110)

您的程序应该至少使用一个名为div_sum的函数 获取一个数字并返回其除数之和

我的代码:

#include <iostream>
#include <stdio.h>


int main()

{
int i=1, x=101, sum, smax=0, xmax=0;

    for (x=101; x<=110; x++)
        {  sum=0;

           for(i=1; i<=x; i++)
               {
                  if(x%i==0)
                  sum+=i;
               }

           if(sum>smax)
               {
                  smax=sum;
                  xmax=x;
               }

           printf("The sum of factors of %d = %d\n",x,sum);

        }

    printf("The number that has the maximum sum of divisors is %d with the sum of %d",xmax,smax);

    return 0;
}
#包括
#包括
int main()
{
int i=1,x=101,和,smax=0,xmax=0;

对于(x=101;x,可以将计算每个x的除数之和的循环移动到单独的函数:

int div_sum(int x) {
    int sum = 0;
    for(int i=1; i<=x; i++)
    {
        if(x%i==0)
        sum+=i;
    }
    return sum;
}
int div\u sum(int x){
整数和=0;

对于(int i=1;i,可以将计算每个x的除数之和的循环移动到单独的函数:

int div_sum(int x) {
    int sum = 0;
    for(int i=1; i<=x; i++)
    {
        if(x%i==0)
        sum+=i;
    }
    return sum;
}
int div\u sum(int x){
整数和=0;

对于(int i=1;i对于循环中的每个数字,调用该函数。该函数应包含当前循环中的所有代码。

对于循环中的每个数字,调用该函数。该函数应包含当前循环中的所有代码。

您的代码实际上非常接近

以下是我所做的:

void div_sum()
{        

    int sum;
    int max_sum = 0;
    int max_num;

    for (int x = 101; x <= 110; x++)
    {
        sum = 0;
        for (int i = 1; i <= x; i++)
        if (x%i == 0)
            sum = sum + i;

        printf("\nFor the number %d, the sum of the divisors is %d\n", x, sum);         
        if (sum > max_sum)
        {
            max_sum = sum;
            max_num = x;
        }
    }
    printf("max = %d\n", max_num);
}
void div_sum()
{        
整数和;
int max_sum=0;
int max_num;

对于(intx=101;x,您的代码实际上非常接近

以下是我所做的:

void div_sum()
{        

    int sum;
    int max_sum = 0;
    int max_num;

    for (int x = 101; x <= 110; x++)
    {
        sum = 0;
        for (int i = 1; i <= x; i++)
        if (x%i == 0)
            sum = sum + i;

        printf("\nFor the number %d, the sum of the divisors is %d\n", x, sum);         
        if (sum > max_sum)
        {
            max_sum = sum;
            max_num = x;
        }
    }
    printf("max = %d\n", max_num);
}
void div_sum()
{        
整数和;
int max_sum=0;
int max_num;

对于(int x=101;x),除了不使用函数
div\u sum
之外,代码看起来很好。除了不使用函数
div\u sum
之外,代码看起来很好。