实现程序需要用到函数:
void swap_Max(int a[], int n);//排序函数
void swap_Min(int a[], int n);//排序函数
void file_swap(const int a[], int n);//输入文件函数
void rand_inv(int a[], int n);//随机打乱函数
void swap(int &a, int &b);//交换函数
思路:
首先,根据要求可将程序分为以下几点:
- 随机产生数。
- 额外要求:随机产生数不重复;
- 将产生的数组进行排序,顺排序和逆向排序。
- 输入文件,并且能持续输入文件。
实现函数:
大小顺序排序函数:
void swap_Max(int a[], int n)
{
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1-i; j++)
{
if (a[j] < a[j + 1])
swap(a[j], a[j + 1]);
}
}
file_swap(a, 5);
}
void swap_Min(int a[], int n)
{
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1-i; j++)
{
if (a[j] > a[j + 1])
swap(a[j], a[j + 1]);
}
}
file_swap(a, 5);
}
输入文件函数:
void file_swap(const int a[], int n)
{
ofstream outFile;
cout <<endl;
outFile << endl;
outFile.open("output.txt",ios::out|ios::app);
if (a[0] > a[n - 1])
{
cout << "Max to min: \n";
outFile << "Max to min: \n";
}
else if(a[0]<a[n-1])
{
cout << "Min to max: \n";
outFile << "Min to max: \n";
}
else
{
cout << " compare:\n ";
outFile << "compare:\n";
}
for (int i = 0; i < n; i++)
{
outFile << a[i] << "\t";
cout << a[i] << '\t';
}
outFile.close();
}
其他调用函数:
void swap(int& a, int& b)
{
int temp;
temp = a;
a = b;
b = temp;
}
void rand_inv(int a[], int n)
{
for (int i = 0; i < n; i++)
swap(a[i], a[rand() % n]);
}
结果截图: