vc++乘法练习程序,该如何处理

vc++乘法练习程序
小学生乘法练习程序,随机生成不重复的乘法算式,且被乘数必须小于乘数,由小朋友给出答案,如果不正确,该记录在错题文件中,45个全部练习完后选择继续或退出

问题是如何控制被乘数必须小于乘数,不会是if(a>b)吧!还要用流保存错误记录这个我就不知该从哪下手了,45个后选择继续或退出我也不会,我的技术很烂的,请高手赐教

#include "iostream.h"
#include "stdlib.h"
main()
{
  int a,b,i,c;
  for(i=0;i<=100;i++)
  {
  a=1+(int)(10.0*rand()/(RAND_MAX+1.0));
  b=1+(int)(10.0*rand()/(RAND_MAX+1.0));

  //如何控制被乘数必须小于乘数-----------------------------------
  cout<<"how much is"<<a<<" times"<< b <<"?"<<endl;
  cin>>c;
  if(c==a*b)
  {
  cout<<"very good"<<endl;
  continue;
  }
  else

  //用流保存错误记录这个我就不知该从哪下手了 ---------------------

  }
}

------解决方案--------------------
基本框架,没有进行参数检查vs2010
C/C++ code
// times.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdlib.h>
#include <fstream>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,c,t;
    int time=0;
    char quit;
    ofstream fout;
    fout.open("file.dat");
    for (int i=0;i<=100;i++)
    {
        a=rand()%100;
        b=rand()%100;
        if (a<b)
        {
            t=a;
            a=b;
            b=t;
        }
        cout<<"how much is "<<a<<" times "<< b <<"=?"<<endl;
        cin>>c;
        if(c==a*b)
        {
            cout<<"very good"<<endl;
            continue;
        }
        else
        {
            fout<<a<<"x"<<b<<"="<<c<<endl;
        }
        time++;
        if (time==45)
        {
            cout<<"You hava finish 45 time.Continue?(Y/N)"<<endl;
            cin>>quit;
            if (quit=='N')
            {
                break;
            }
            else
            {
                time=0;
            }
        }
    }
    fout.close();
    return 0;
}

------解决方案--------------------

加油:老鸟都是从菜鸟过来的。