C++考题:建立两个磁盘文件f1.dat和f2.dat,试编程序实现:从键盘键入20个不同的整数,奇数放入f1.dat,偶数放入f2.dat

C++试题:建立两个磁盘文件f1.dat和f2.dat,试编程序实现:从键盘键入20个不同的整数,奇数放入f1.dat,偶数放入f2.dat
建立两个磁盘文件f1.dat和f2.dat,试编程序(C++)实现以下工作:
a)从键盘键入20个不同的整数,奇数放入f1.dat,偶数放入f2.dat;
b)分别读入f1.dat和f2.dat中的奇数,对这20个整数按递增方式排序后,依次写入f1.dat中,实现f1.dat中的数据的更新。

------解决方案--------------------
C/C++ code

#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int a[100]={0};
const int Count=20;
void createDat(char *s)
{
    fstream f1,f2;
    f1.open("f1.dat",ios::out);
    f2.open("f2.dat",ios::out);
}
void writeDat(int i)
{
    fstream f1;
    f1.open("f1.dat",ios::app);
    fstream f2;
    f2.open("f2.dat",ios::app);
    if(i%2==0)
        f1<<i<<'\t';
    else
        f2<<i<<'\t';
    f1.close();
    f2.close();
}

void readDat()
{
    fstream f1,f2;
    f1.open("f1.dat",ios::in);
    f2.open("f2.dat",ios::in);
    int i=0;
    while(!f1.eof())
    {
        f1>>a[i++];
    }
    i--;
    while(!f2.eof())
    {
        f2>>a[i++];
    }
}

int main()
{
    createDat("f1.dat");
    createDat("f2.dat");
    int i,j;
    for(j=0;j!=Count;j++)
    {
        cin>>i;
        writeDat(i);
    }
    readDat();
    sort(a,a+Count);
    for(i=0;i<Count;i++)
        cout<<a[i]<<endl;
    return 0;
}