下面是一个典型的注释喧宾夺主的例子(/* */ 注释的部分指出问题所在):
#include <bits/stdc++.h>
using namespace std;
int n, a, b, c, x, y, k;
bool t;
int main() {
scanf("%d",&k);//k组测试数据
/* 题目输入格式里已经把输入的每个数字的含义写的很清楚了。 */
while(k--){
scanf("%d",&n);
t=false;//判断是否有答案的变量
for(int i=0;i<=sqrt(n)+1;i++){
for(int j=i;j<=sqrt(n)+1;j++){
for(int l=j;l<=sqrt(n)+1;l++){
if(i*i+j*j+l*l==n){//满足条件
printf("%d %d %d\n",i,j,l);//输出
/* 是当读者完全不知道 printf 函数吗? */
t=true;//打标记,不要进行多余的循环
break;//退出循环
/* 同前。 */
}
}
if(t)break;//退出循环
/* 同前。 */
}
if(t)break;//退出循环
/* 同前。 */
}
if(t)continue;//如果找到了答案,就已经输出了,进行下一次循环
printf("-1\n");//不然就是没找到答案,输出-1
/*前文已经讲了,并且是当读者完全不知道 continue 关键字吗?*/
}
return 0;
}
/* 总结:请不要把读者当完全没学过语言的傻子。 */