以下来自http://zhidao.baidu.com/question/251230366.html?ansup1: #include<stdio.h> int main() { int x,i,j,r,n,m,p; x=0; scanf("%d",&p); while(scanf("%d%d",&n,&m)!=EOF&&n!=0&&m!=0) { r=0; x++; for(i=1;i<n;i++) { for(j=i+1;j<n;j++) { if((i*i+j*j+m)%(i*j)==0) {r++;} } } printf("Case %d: %d/n",x,r); } return 0; } (1)格式控制错了; (2)控制循环的条件n!=0&&m!=0错了。 以下修改AC: #include<stdio.h> int main() { int x,i,j,r,n,m,p,p0; scanf("%d",&p); for (p0=0; p0<p; p0++) { x=0; while(scanf("%d%d",&n,&m)!=EOF&&(n!=0||m!=0)) { r=0; x++; for(i=1;i<n;i++) { for(j=i+1;j<n;j++) { if((i*i+j*j+m)%(i*j)==0) {r++;} } } printf("Case %d: %d/n",x,r); } if (p0<p-1) printf("/n"); } return 0; }