开始答案
#include <stdio.h>
int main()
{
int i,n,m,t,sum,p;
while(scanf("%d",&n)!=EOF)
{sum=0; t=0;
scanf("%d",&m);
for(i=2;i<=2*n;i=i+2)
{sum=sum+i;
t=t+1;
if(t%m==0)
{p=sum/m;
printf("%d
",p);
sum=0;
t=0;
p=0;
}
}
p=sum/t;
printf("%d
",p);
}
return 0;
}
提示很明显啊,除零错误。就是在除法中出现了除数是0的情况。
修改
#include <stdio.h>
int main()
{
int i,n,m,t,sum,p;
while(scanf("%d",&n)!=EOF)
{sum=0; t=0;
scanf("%d",&m);
for(i=2;i<=2*n;i=i+2)
{sum=sum+i;
t=t+1;
if(t%m==0)
{p=sum/m;
printf("%d
",p);
sum=0;
t=0;
p=0;
}
}
if(t==0) break;
p=sum/t;
printf("%d
",p);
}
return 0;
}
输入4 2 就结束了
break这里就结束程序了
//break是结束整个循环体,continue是结束单次循环
所以这一要用continue
修正
#include <stdio.h>
int main()
{
int i,n,m,t,sum,p;
while(scanf("%d",&n)!=EOF)
{sum=0; t=0;
scanf("%d",&m);
for(i=2;i<=2*n;i=i+2)
{sum=sum+i;
t=t+1;
if(t%m==0)
{p=sum/m;
printf("%d
",p);
sum=0;
t=0;
p=0;
}
}
if(t==0) continue;
p=sum/t;
printf("%d
",p);
}
return 0;
}
结果是RE
#include <stdio.h>
int main()
{
int i,n,m,t,sum,p,sign;
while(scanf("%d",&n)!=EOF)
{sum=0; t=0;sign=0;
scanf("%d",&m);
for(i=2;i<=2*n;i=i+2)
{sum=sum+i;
t=t+1;
if(t%m==0)
{p=sum/m;
if(sign==0)
printf("%d",p);
else printf(" %d",p);
sum=0;
t=0;
p=0;
sign=1;
}
}
if(t==0) {printf("
");continue;}
p=sum/t;
printf(" %d",p);
printf("
");
}
return 0;
}
终于AC了