偶数求和

开始答案

#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了

原文地址:https://www.cnblogs.com/liuming1115/p/4374368.html