检查n个数字是否为完美平方,以及如何计算它们的和?

时间:2018-08-18 17:42:01

标签: c sum perfect-square

我要解决的问题是检查用户引入的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;

}

1 个答案:

答案 0 :(得分: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;  
}