所以我对 C++ 还是很陌生,并且已经编写了一段时间的程序。我想我正在慢慢理解它,但不断收到错误消息“Intellisense:'*' 的操作数必须是一个指针。”第 36 行第 10 列。我需要做什么来修复此错误?当我完成每个功能时,我将开始使用其他功能,对于额外的功能声明,我深表歉意
// This program will take input from the user and calculate the
// average, median, and mode of the number of movies students see in a month.
#include <iostream>
using namespace std;
// Function prototypes
double median(int *, int);
int mode(int *, int);
int *makeArray(int);
void getMovieData(int *, int);
void selectionSort(int[], int);
double average(int *, int);
// variables
int surveyed;
int main()
{
cout << "This program will give the average, median, and mode of the number of movies students see in a month" << endl;
cout << "How many students were surveyed?" << endl;
cin >> surveyed;
int *array = new int[surveyed];
for (int i = 0; i < surveyed; ++i)
{
cout << "How many movies did student " << i + 1 << " see?" << endl;
cin >> array[i];
}
median(*array[surveyed], surveyed);
}
double median(int *array[], int num)
{
if (num % 2 != 0)
{
int temp = ((num + 1) / 2) - 1;
cout << "The median of the number of movies seen by the students is " << array[temp] << endl;
}
else
{
cout << "The median of the number of movies seen by the students is " << array[(num / 2) - 1] << " and " << array[num / 2] << endl;
}
}
最佳答案
问题:
表达式
*array[surveyed]
用于以下行:median(*array[surveyed], surveyed);
是不对的。
array[surveyed]
是数组的第surveyed
元素。它不是指针。取消引用它没有意义。声明中使用的
median
的第一个参数的类型与定义中使用的类型不同。声明似乎是正确的。将实现更改为:double median(int *array, int num)
修正您调用
median
的方式。而不是median(*array[surveyed], surveyed);
使用
median(array, surveyed);
关于c++ - 使用指针调用函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28462889/