该程序需要让用户输入数字并计算每个输入数字的因子之和。

它需要这样做,直到用户输入一个奇数且可除以5的数字为止(它不会计算该最后一个数字的总和)。然后,它需要列出计算出的总和数和最大和。

我遇到的问题是该程序而不是显示最大和(max),而是显示和的总和。

suma是求和变量

#include <stdio.h>
#include <stdlib.h>
main()
{
int x ,i ,suma=0 ,nr=0 ,max=0;



while(1)
{
printf("Introduceti un intreg:\n");
scanf("%d",&x);

for(i=2;i<=x/2;i++)      //the for checks if i is a factor of x, then adds it to the

                         //sum of factors
{
if(x%i==0)
          suma = suma + i;
}

if (x%2!=0 && x%5==0)
          break;
          nr++;

if (suma>=max)
          max=suma;


}

printf("Numarul sumelor calculate este %d\n\n",nr);     //The number of sums calculated is
printf("suma este : %d",max);                           //The maximum sum is


}

最佳答案

suma应该在for循环之前初始化(因此,对每个和重新初始化),而不是在程序停止处初始化。

关于c - C max of sums-需要修改它以停止添加总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26890951/

10-11 21:27