输出连续的整数序列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数据溢出,造成死循环。所以要处理最后一个数据。