Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 数据类型冲突 #包括 #包括 使用名称空间std; 无效反向顺序(双[]); int main(){ 常数int size=4; 双数组[大小]={1.2,6.7,-12.45,34.9}; cout_C++ - Fatal编程技术网

C++ 数据类型冲突 #包括 #包括 使用名称空间std; 无效反向顺序(双[]); int main(){ 常数int size=4; 双数组[大小]={1.2,6.7,-12.45,34.9}; cout

C++ 数据类型冲突 #包括 #包括 使用名称空间std; 无效反向顺序(双[]); int main(){ 常数int size=4; 双数组[大小]={1.2,6.7,-12.45,34.9}; cout,c++,C++,您正在调用函数reverseOrder(double[]),使用array[size]作为参数,该参数只是数组(*)的一个元素。因此,您正在传递一个double,但函数需要一个数组 在您的情况下,应该使用reverseOrder(array)调用函数 (*)在这种情况下,它甚至不是一个元素,因为它指向最后一个元素之后的,因为第一个元素由0访问,因此由4访问,您将实际访问第五个元素(多亏drescherjm指出了这一点)您的特定问题(仅是我们观察到的第一个问题)您试图将一个double传递给一个需

您正在调用函数
reverseOrder(double[])
,使用
array[size]
作为参数,该参数只是数组(*)的一个元素。因此,您正在传递一个double,但函数需要一个数组

在您的情况下,应该使用
reverseOrder(array)
调用函数

(*)在这种情况下,它甚至不是一个元素,因为它指向最后一个元素之后的,因为第一个元素由0访问,因此由4访问,您将实际访问第五个元素(多亏drescherjm指出了这一点)

您的特定问题(仅是我们观察到的第一个问题)您试图将一个
double
传递给一个需要
double
s数组的函数。这是因为

#include <iostream>
#include <iomanip>

using namespace std;

void reverseOrder (double []);

int main() {

    const int size = 4;

    double array[size] = {1.2, 6.7, -12.45, 34.9};

    cout << "Forwards:" << " " << endl;

    for (int index = 0; index < size; index++) {
        cout << array[index] << endl;
    }

    // Display in reversed order.
    cout << "Backwards: " << endl;
    reverseOrder(array[size]);

    return 0;
}

void reverseOrder(double array[]) {

    const int size = 10;
    int j;
    double reverseOrder[size];
    double temp = 0;

    for (int i = 0, j = size - 1; i < (size / 2); i++, j--) {
        temp = reverseOrder[i];
        reverseOrder[i] = array[j];
        reverseOrder[j] = temp;
    }

    for (int reverse = 0; reverse < size; reverse++) {
        cout << array[reverse] << endl;
    }
}

返回与给定索引关联的数组的值(您应该像
reverseOrder(array);
)那样调用它)。也就是说,只要索引在允许的范围内,它就会返回该值。这里不是这种情况,因为数组[size]比数组的最后一个元素晚一个。最后一个是索引数组[size-1]。因此,你正在经历未定义的行为。

啊。这是如此鲁莽、粗鲁、无礼和幼稚,以至于很有趣。是什么让你认为你会在一个甚至没有被问到的问题上得到答案?专业建议:至少先看看常见问题解答……为什么它不想编译?使用--force编译directiveIn
main()@DanielAwbrey:如果你愿意花时间陈述一个实际的问题,并且通常会花更多的时间来形成一个整洁的文本,而不是不看预览就吐出一堆文本,那么你会吸引更多的ppl来为你写出一个好的答案。这只是数组的一个元素,实际上是数组之外的一个元素/UB,因为c/c++使用基于0的索引。正确。我将相应地编辑答案。
array[index]