#include<stdio.h>
int main()
{
int a,b,c,d;
int i;
while(scanf("%d %d %d",&a,&b,&c)!=EOF)
{
if(a*a+b*b+c*c==3*a*b*c)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
/*
流程:
循环scnaf寻找3个一组的数字,判断,ptf
*/
实现的代码如上,
重要的知识点是:
SCANF可以看作一个函数,如上图它可能输出的值为【-1,3】(整数),只要他在你输出的数据流中能检测到数字(非0),那么它的值就会始终属于【1,3】(也就满足循环条件不为-1,继续循环)。检测到一个满3就执行一次while下面的语句,直到检测不到为止,这样就实现了对不定的n组数据输入的接受了,nice~
值得注意的是scanf对遇到0时并不把他当作一个"资本”也就是说当scanf采集到3个0时它的函数值还是0,(铁直啊)
所以说:
这行代码:α:
while(scanf("%d %d %d",&a,&b,&c)!=EOF)
其实也有另一种写法:β:
while(scanf("%d %d %d",&a,&b,&c)==3)
(3就是你%d的个数)(注意!=到==的变化)
(注意别写成=了,这也是出题的那群阴暗比喜欢搞的把戏)
两种都可以实现对n组具有3个元素数据的接收,不同的是β要求元素不为0,等于0的话直接不满足循环条件退出了,所以不想要0的话可以采取β写法。