【发布时间】:2016-04-11 01:07:01
【问题描述】:
这是我在学习 C++ 时一直在研究的工作代码。
我如何修改它以便 ArraySortToMedian() 使用指针表示法而不是数组表示法来处理数组?
到目前为止,我的所有尝试都没有奏效,因此我缺少逻辑关系或语法中的某些内容。提前谢谢你。
#include <iostream>
#include <fstream>
double ArraySortToMedian(int [], int );
using namespace std;
int main()
{
ifstream infile;
infile.open("numbers.txt");
const int SIZE = 6;
int array[SIZE];
int i = 0;
double median;
if(!infile)
{
cout << "couldn't find 'numbers.txt'";
return 1;
}
while(i < SIZE && infile >> array[i])
i++;
infile.close();
for(i = 0; i < SIZE; i++)
cout << *(array + i) << "!\n";
median=ArraySortToMedian(array, SIZE);
cout<< "\n" << median << "\n";
return 0;
}
double ArraySortToMedian(int (x[]), int numElem)
{
bool swap;
int temp, i;
double m;
do
{
swap = false;
for(i = 0;i < (numElem - 1); i++)
{
if( x[i] > x[i + 1] )
{
temp = x[i];
x[i] = x[i + 1];
x[i + 1] = temp;
swap = true;
}
}
}
while (swap);
cout << "\n";
for(i = 0; i < numElem; i++)
cout << x[i] << "\n";
m = (x[numElem/2] + x[numElem/2]-1)/(double)2;
return(m);
}
【问题讨论】:
-
它们总是通过引用传递。很难(即不可能)做的事情是通过 value 传递它们。
-
你有充分的理由不使用 std::vector 吗?
-
在我开始学习向量和指针语法之间的关系之前,尝试理解数组和指针的关系。
-
这个问题有答案here。
标签: c++ arrays function pass-by-reference