输入较大数字时程序无法再输入运行

ctoLu 2023-09-21 08:32:12

杭电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;
	} 
}

 

...全文
269 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-09-21
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/8002057, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态
2301_79315595 2023-09-21
  • 打赏
  • 举报
回复

只要代码对,不越界不就行了

张朋举Biz 2023-09-21
  • 打赏
  • 举报
回复

你这个代码完全不能用,给你个能用的吧。

#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");
    }
}

466

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧