0

我被分配了一个需要 25 个双精度数组的程序。然后需要翻转和显示。我似乎无法让 flipArray 函数工作。

#include <iostream>

using namespace std;

const int NUMSCORES = 25; 
//double getData(double &myArray);
void flipArray (int arr[]);


int main(void)
{   
    int scores[NUMSCORES], i;
    for(i=0; i<NUMSCORES; i++){
        cout << "Please enter scores #" << i+1 << ": ";
        cin >> scores[i];
    }

    cout << "Your test scores:\n";
    for(i=0; i<NUMSCORES; i++)
        cout << "\tTest score #" << i+1 << ": " << scores[i] << endl;

    flipArray(NUMSCORES);
    return;
    }

void flipArray(int arr[])
{
    int j;
    for (j=NUMSCORES-1; j>=0; j--)
        cout << arr[j] << "\t";
}
4

2 回答 2

1
flipArray(NUMSCORES);

您的问题是您的参数是分数的数量( an int),而不是数组(将作为 an 传递int*)。尝试这个:

flipArray(scores);
于 2012-11-14T20:44:13.143 回答
1

错误消息讲述了整个故事:

prog.cpp: In function ‘int main()’:
prog.cpp:22: error: invalid conversion from ‘int’ to ‘int*’
prog.cpp:22: error:   initializing argument 1 of ‘void flipArray(int*)’
prog.cpp:23: error: return-statement with no value, in function returning ‘int’

这两行是错误的:

flipArray(NUMSCORES);
return;

在第一行中,您传入了一个int,即数组的大小,而您应该传入数组本身。

在第二行中,您未能指定 from 的返回值main

尝试:

flipArray(scores);
return 0;
于 2012-11-14T20:44:37.557 回答