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中的数据的更新。
------解决方案--------------------
建立两个磁盘文件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; }