64,654
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
void input(istream& ins,int array[],int& i);
//前条件:ins已经连接到一个输入流可以是键盘,也可以是文件
//后条件:一次读取输入流的int整型数值,并存入一个数组
void sort(int array[],int size);
//前条件:一个数组已经存在,并且大小已知了
//后条件:重新排序数组,使数组按升序排列
int main()
{
int i=0,array[30];
ifstream in_stream;
in_stream.open("textfile6_1.txt");
if(in_stream.fail())
{
cout <<"Input file opening failed!\n";
exit(1);
}
input(in_stream,array,i);
sort(array,i-1);
cout <<"The max is:"<<array[i-1]<<endl;
cout <<"The min is:"<<array[0]<<endl;
return 0;
}
void input(istream& ins,int array[],int& i)
{
while(!ins.eof())//重点是这里,如果输入文件里是:1[空格]...22[空格]1,那么输出正常
{
ins >>array[i];//如果输入文件里是1[空格]...22[空格]1[空格],那么读入的最后一个字符是
cout <<array[i]<<endl;//-858993460,为什么会这样呢?????
i++;
}
}
void sort(int array[],int size)
{
while(size!=0)
{
int j=0,k=1;
for(int n=0;n<size;n++)
{
if(array[j]>array[k])
{
int temp;
temp=array[j];
array[j]=array[k];
array[k]=temp;
}
j++;
k++;
}
size--;
}
}
void input(istream& ins,int array[],int& i)