我的程序没有创建输出文件来显示组织数组。代码运行没有错误,但在检查保存源文件的文件夹时,我没有看到名为result.txt的文件。有什么想法吗?
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
void sort(double a[], int control);
int main()
{
int control=15;
double a[control];
ifstream in_stream;
in_stream.open("data.txt");
if(in_stream.fail())
{
cout<<"Input file opening failed\n.";
exit(1);
}
for (int i=0;i<15;i++)
{
in_stream>>a[i];
}
in_stream.close();
sort(a,control);
ofstream out_stream;
out_stream.open("result.txt");
if(out_stream.fail())
{
cout<<"Output file opening failed\n.";
exit(1);
}
for(int i=0;i<15;i++)
{
out_stream<<a[i];
}
out_stream.close();
return 0;
}
void sort(double a[], int control)
{
int swapped=0,temp,i;
while(1)
{
for (i=0;i<control;i++)
{
int temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
swapped=1;
}
if (swapped == 0)break;
}
}
答案 0 :(得分:0)
你的程序永远不会到达你写下输出流的部分,因为它会在你的排序方法中陷入无限循环。
您可以使用此冒泡排序方法。
// A function to implement bubble sort
void sort(double a[], int control) {
int i, j;
for (i = 0; i < control - 1; i++)
// Last i elements are already in place
for (j = 0; j < control - i - 1; j++)
if (a[j] > a[j + 1]) {
int temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}