【发布时间】:2014-11-12 15:46:14
【问题描述】:
这个程序需要让用户输入数字并计算每个输入数字的因子总和。
它需要这样做,直到用户输入一个奇数且可被 5 整除(它不计算最后一个数字的总和)。然后,它需要列出计算的总和的个数和最大的总和。
我遇到的问题是程序,而不是显示最大总和(最大值),而是显示总和的总和。
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 = 0之前for -
所以我想如果每次最大值只是每次都向旧的总和添加一个新的总和之后我没有使总和为 0,对吧?就这样我明白了。
-
si :) tu entiendes ;)