466
社区成员




杭电oj2015的题,输入较小数字时能正常重复运行输出,但输入较大数字时程序会自动结束,是什么原因?
#include<stdio.h>
int main()
{
int m,n;
int N[100];
int a=2;
int t;
int r=0;
int sum=0;
int eqal;
for(int i=0;i<100;i++)
{
N[i]=a;
a+=2;
}
while(~scanf("%d %d",&n,&m))
{
t=n/m;
for(int i=0;i<t;i++)
{
for(int i=r;i<r+m;i++)
{
sum+=N[i];
}
r+=m;
eqal=sum/m;
printf("%d ",eqal);
sum=0;
eqal=0;
}
t=n-t*m;
for(int i=r;i<r+t;i++)
{
eqal+=N[i];
}
eqal/=t;
printf("%d",eqal);
r=0;
}
}
只要代码对,不越界不就行了
你这个代码完全不能用,给你个能用的吧。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int n, m;
int i, j;
int sign;
int sum;
while (~scanf("%d %d", &n, &m))
{
for (i = 1; i <= n;)
{
sum = 0;
sign = 0;
for (j = 1; j <= m && i <= n; j++)
{
sum = sum + i * 2;
sign++;
i++;
}
printf("%d", sum / sign);
if (i <= n)
printf(" ");
}
printf("\n");
}
}