【发布时间】:2012-11-04 06:05:05
【问题描述】:
我正在尝试创建一个程序,它将所有实数放在一个数组中——数字的排序发生在一个单独的函数中——降序排列,然后打印出来。
以下是我目前拥有的程序,但根据编译器的说法,它有两个问题:
(i) 在第 22 行 ("return N[t];"),我得到“error: invalid types 'double*[double]' for array subscript”。
(ii) 在第 28 行 ("cout << sort_array(Q[100]) << " " "),我得到 "error: cannot convert 'double' to 'double*' for argument '1' to 'double* sort_array(double*)'"。
我不太明白为什么会出现这两个错误,但我希望得到一些帮助来解决它们。
#include <iostream>
#include <cstdlib>
using namespace std;
double *sort_array (double *N) {
double t;
int size=100, a, b;
for (t=0; t<size; t++)
*N = rand()%250;
for (a=1; a<size; a++) {
for (b=size-1; b>=a; b--) {
if (N[b-1] < N[b]) {
t = N[b-1];
N[b-1] = N[b];
N[b] = t;
}
}
}
return N[t];
}
int main()
{
double Q[100];
cout << sort_array(Q[100]) << " ";
cout << endl;
return 0;
}
【问题讨论】: