输出连续的整数序列2(考虑当P或Q是int类型能表示的最大值或最小值时)

输出连续的整数序列2(考虑当P或Q是int类型能表示的最大值或最小值时)

#include<stdio.h>
int main()
{
    int n,p,q,i,j,t;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&p,&q);
        if(p==q)
        printf("%d\n",p);
        else
        {
            if(p>q)
            {
                t=p;
                p=q;
                q=t;
            }
            for(j=p;j<q;j++)
            {
                printf("%d ",j);
            }
            printf("%d\n",q);//单独处理最后一个数据。

        }
        printf("\n");
    }
    return 0;
}

如果先处理第一个数据,则for(j=p;j<=q;j++)加到2147483647时,j<=2147483647,还可以再循环一遍,完了以后变成2147483648数据溢出,造成死循环。所以要处理最后一个数据。

猜你喜欢

转载自blog.csdn.net/weixin_43737185/article/details/84249563