Не могу понять, как исправить две ошибки
Не могу понять, почему выдает ошибку "выражение перед скобками вероятного вызова должно иметь тип функции (pointer-to-)", а так же выдает ошибку "результатом вычисления фрагмента не является функция, принимающая 4 аргументов". все в строке " sm=sum(x, 5, t, k);
#include<iostream>
#include <iomanip>
#include <cmath>
using namespace std;
void inputv(double x[], int n)
{
cout << "Введите координаты массива:";
for (int i = 0; i < n; i++)
{
cin >> x[i];
}
}
void outputv(double x[], int n)
{
int i = 0;
cout << "Массив:";
for (int i = 0; i < n; i++);
{
cout << x[i] << " ";
}
cout << endl << endl;
}
//Находим наибольший отрицательный элемент
void pervoeotr(double x[], int n, double& potr, int& t)
{
int i = 0;
for (i = 0; i < n; i++)
{
if (x[i]<0 && (potr <x[i]))
{
potr = x[i];
t=i;
}
}
}
//Находим наименьший элемент
void vtoroeotr(double x[], int n, int& votr, int& k)
{
int i;
votr = 0;
for (int i = 0; i < n; i++) {
if (votr > x[i]) {
votr = x[i];
k = i;
}
}
}
double sum(double x[], int n, int t, int k)
{
int i;
double sum;
if (t < k) {
sum= 0;
for (i = t + 1; i < k; i++)
sum += x[i];
}
else {
sum = 0;
for (i = k + 1; i < t; i++)
sum += x[i];
}
return sum;
}
void main()
{
setlocale(LC_ALL, "rus");
double x[5], potr;
int n, sum, votr, t, k;
inputv(x, 5);
outputv(x, 5);
pervoeotr(x, 5, potr, t);
cout << "Максимальное значение массива:" << potr << endl;
cout << "1 номер отрицательного элемента:" << t << endl;
vtoroeotr(x, 5, votr, k);
cout << "Минимальное значение массива:" << votr << endl;
cout << "2 Номер отрицательного элемента:" << k << endl;
double sm;
sm=sum(x, 5, t, k);
cout << "Сумма " << sm << endl;
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
У вас есть
double sum(double x[], int n, int t, int k)
...
и
void main()
{
...
int n, sum, votr, t, k;
Скажите, какое имя из двух sum компилятор использует в строчке
sm=sum(x, 5, t, k);
в функции main()?