该程序需要让用户输入数字并计算每个输入数字的因子之和。
它需要这样做,直到用户输入一个奇数且可除以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/