-3

我必须解决的问题是检查用户引入的 n 个数字是否是完美平方,然后我必须计算这些完美平方的总和。我了解如何执行这些操作,但我的代码根本不适用于应该计算总和的部分。我不知道该怎么办。

int main()
{
int n, num, sum, iVar;
float fVar;

    sum=0;
    fVar=sqrt((double)num);
    iVar=fVar;

printf("Introduce numbers, press 0 to stop:");

    for(n=0; ; n++)
        {
        scanf("%d", &num);
        if(num==0){break;}
        if(iVar==fVar)
            {
                sum+=num;
            }
        }

printf("Sum of all perfect squares is: %d", sum);
return 0;

}
4

1 回答 1

0

您可以执行以下操作。对于运行无限循环,您可以使用while(num)而不是for(n=0; ; n++).

#include<stdio.h>
#include<math.h>

int main()
{
  int sum = 0;
  double num = 0;

   printf("Introduce numbers, press 0 to stop:");

    scanf("%lf", &num);
    while(num)
        {
          int res =  sqrt(num);
          if((res*res)==num)
           {
                sum+=num;
           }

          scanf("%lf", &num);
       }

   printf("Sum of all perfect squares is: %d", sum);
   return 0;  
}
于 2018-08-18T18:21:49.450 回答