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