又来了,一个小程序,运行出现了有关问题

又来了,一个小程序,运行出现了问题
题目:编写一个程序打印一个表,表的每一行都给出一个整数它的平方以及它的立方。
要求用户输入表的上限与下限。使用一个for循环。我写的程序如下:
#include<stdio.h>
int main(void)
{
int i,min,max; //min,max代表下限和上限
while(2==(scanf("%d %d\n",&min,&max)))
{
 printf("%5s %5s %5s\n","num","square","cube");//
for(i=min;i<=max;i++)
{
printf("%4d %4d %4d\n",i,i*i,i*i*i);
}
scanf("%d%d\n",&min,&max);
}
return(0);
}
我的问题是为什么我输入两个整数后按回车键没反应,例如输入:1   10      回车     运行结果是: 1     10 
当我在多输入一个数如1   10    1     回车         他就会显示正常(但是多输入了一个1).按理说键入两个整数,scanf()的返回值应该是2,然后会接着执行,然后再输入,在判断啊,不是输入两个整数时程序就须停止。拜托大家帮我看看哪里出错没?谢谢!
------解决思路----------------------
#include<stdio.h>
int main(void)
{
  int i,min,max; //min,max代表下限和上限                                       
  while(2==(scanf("%d %d",&min,&max)))/////                                     
    {
      printf("%5s %5s %5s\n","num","square","cube");
      for(i=min;i<=max;i++)
        {
          printf("%4d %4d %4d\n",i,i*i,i*i*i);
        }
      scanf("%d %d",&min,&max);//////////                                       
    }
  return(0);
}


------解决思路----------------------
scanf() 引号中是格式控制符号 不能有回车换行
------解决思路----------------------
scanf中不要随便加非输入控制符,尤其是\n——http://blog.csdn.net/u012421456/article/details/18501309
------解决思路----------------------
输入两个数,中间最好加个空格,不然在某些情况下可能出现莫名的问题