2个回答
展开全部
//sumos团队
以下程序符合要求,在VC6.0中编译通过
//任何其他问题,追问我哦 ^_^
#include<stdio.h>
#include<fstream.h>
#include<windows.h>
#define MaxSize 402
typedef struct{ //存取数据的结构体
int data[MaxSize];
}Data;
int data[MaxSize];
bool WriteNumbers( int);
bool ReadNumbers();
void Sort( int [], int ,int);
bool Init();
int main(){
WriteNumbers( 0); //产生待排序的随机数文件
ReadNumbers(); //读取文件内容
Sort( data, 0, MaxSize - 1); //排序
WriteNumbers( 1); //重新写入文件
return 0;
}//main
void Sort( int _data[], int _beg, int _end){
int i = _beg, j = _end, tmp;
if( _beg < _end){
tmp = data[i];
while( i < j){
while( i < j && data[j] >= tmp){
j--;
}
data[i] = data[j];
while( i < j && data[i] <= tmp){
i++;
}
data[j] = data[i];
}
data[i] = tmp;
Sort( _data, _beg, i - 1);
Sort( _data, i + 1, _end);
}
}
//读取数据
bool ReadNumbers(){
ifstream ifile;
Data num; int p = 0;
ifile.open( "d:\\a.dat", ios::in | ios::binary);
if( ifile){
ifile.read( ( char *)&num, sizeof( num));
for( int i = 0; i < MaxSize; i++){
data[i] = num.data[i];
}
ifile.close();
printf( "读入数据完成\n");
return true;
}else{
printf( "读入数据失败:检查数据文件d:\\a.dat是否存在。\n");
return false;
}
}//ReadNumbers
//产生测试数据
bool WriteNumbers( int cmd){
Data num;
ofstream ofile;
ofile.open( "d:\\a.dat", ios::out | ios::binary);
if( ofile){
for( int i = 0; i < MaxSize; i++){
if( cmd) num.data[i] = data[i];
else num.data[i] = rand();
}
ofile.write( ( char *)&num, sizeof( num));
ofile.close();
printf( "写入数据完成\n");
return true;
}else{
printf( "写入文件失败: 检查磁盘写保护状态。\n");
return false;
}
}//WriteNumbers
以下程序符合要求,在VC6.0中编译通过
//任何其他问题,追问我哦 ^_^
#include<stdio.h>
#include<fstream.h>
#include<windows.h>
#define MaxSize 402
typedef struct{ //存取数据的结构体
int data[MaxSize];
}Data;
int data[MaxSize];
bool WriteNumbers( int);
bool ReadNumbers();
void Sort( int [], int ,int);
bool Init();
int main(){
WriteNumbers( 0); //产生待排序的随机数文件
ReadNumbers(); //读取文件内容
Sort( data, 0, MaxSize - 1); //排序
WriteNumbers( 1); //重新写入文件
return 0;
}//main
void Sort( int _data[], int _beg, int _end){
int i = _beg, j = _end, tmp;
if( _beg < _end){
tmp = data[i];
while( i < j){
while( i < j && data[j] >= tmp){
j--;
}
data[i] = data[j];
while( i < j && data[i] <= tmp){
i++;
}
data[j] = data[i];
}
data[i] = tmp;
Sort( _data, _beg, i - 1);
Sort( _data, i + 1, _end);
}
}
//读取数据
bool ReadNumbers(){
ifstream ifile;
Data num; int p = 0;
ifile.open( "d:\\a.dat", ios::in | ios::binary);
if( ifile){
ifile.read( ( char *)&num, sizeof( num));
for( int i = 0; i < MaxSize; i++){
data[i] = num.data[i];
}
ifile.close();
printf( "读入数据完成\n");
return true;
}else{
printf( "读入数据失败:检查数据文件d:\\a.dat是否存在。\n");
return false;
}
}//ReadNumbers
//产生测试数据
bool WriteNumbers( int cmd){
Data num;
ofstream ofile;
ofile.open( "d:\\a.dat", ios::out | ios::binary);
if( ofile){
for( int i = 0; i < MaxSize; i++){
if( cmd) num.data[i] = data[i];
else num.data[i] = rand();
}
ofile.write( ( char *)&num, sizeof( num));
ofile.close();
printf( "写入数据完成\n");
return true;
}else{
printf( "写入文件失败: 检查磁盘写保护状态。\n");
return false;
}
}//WriteNumbers
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询