Вопрос: Одномерный массив, ошибки компилятора

  • Автор темы navit
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

navit

#1
Подскажите где у меня ошибка, программа не компилируется?

Дан одномерный массив, состоящий из N целочисленных элементов.
Найти максимальный отрицательный элемент.
Вычислить сумму отрицательных элементов массива

Код:

#include <algorithm>
#include <numeric>

bool comp(int i, int j)
{
i = i>=0?INT_MIN:i;
j = j>=0?INT_MIN:j;
return i<j;
}

int plus(int i, int j)
{
i = i<0?i:0;
j = j<0?j:0;
return i+j;
}

void work()
{
const int N = 10;
int arr[N] = {9, -3, 2, -5, 4, 1, -6, 8, -7, 0};
int max = *std::max_element(arr, arr+N, comp);
int sum = 0;
sum = std::accumulate(arr, arr+N,sum,plus);
}
 

lazybiz

Well-known member
03.11.2010
1 339
0
#2
Если не компилируется программа, то показывай ошибки компилятора, а не условие задания.
 
N

navit

#3
Если не компилируется программа, то показывай ошибки компилятора, а не условие задания.
При компилиции выходят такие ошибки:
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup MSVCRTD.lib

Ошибка 2 fatal error LNK1120: 1 неразрешенных внешних элементов
 

lazybiz

Well-known member
03.11.2010
1 339
0
#6
C++:
#include <iostream.h>

#define		N		10

int			arr[N]	= { 9, -3, 2, -5, 4, 1, -6, 8, -7, 0 };

int main()
{
int	summa = 0;
int	max_neg = -100000;

for ( int i = 0; i < N; i++ ) {
if ( arr[i] < 0 ) {
if ( arr[i] > max_neg ) max_neg = arr[i];
summa += arr[i];
}
}

cout << "Maksimalnyj otricatelnyj element = " << max_neg << endl;
cout << "Summa otricatelnyh elementov = " << summa << endl;

return 0;
}
 
N

navit

#7
Я щас скопировал этот код и попробывал скомпилировать,у меня вышла такая ошибка:
Ошибка 1 fatal error C1083: Не удается открыть файл include: iostream.h: No such file or directory
 

lazybiz

Well-known member
03.11.2010
1 339
0
#8
Попробуй вот этот вариант:
C++:
#include <iostream>

using namespace std;

#define		N		10

int			arr[N]	= { 9, -3, 2, -5, 4, 1, -6, 8, -7, 0 };

int main()
{
int	summa = 0;
int	max_neg = -100000;

for ( int i = 0; i < N; i++ ) {
if ( arr[i] < 0 ) {
if ( arr[i] > max_neg ) max_neg = arr[i];
summa += arr[i];
}
}

cout << "Maksimalnyj otricatelnyj element = " << max_neg << endl;
cout << "Summa otricatelnyh elementov = " << summa << endl;

return 0;
}
 
Статус
Закрыто для дальнейших ответов.