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

Тема в разделе "C/C++/C#", создана пользователем navit, 8 дек 2010.

Статус темы:
Закрыта.
  1. navit

    navit Гость

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

    Дан одномерный массив, состоящий из 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);
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Если не компилируется программа, то показывай ошибки компилятора, а не условие задания.
     
  3. navit

    navit Гость

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

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

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А где в программе функция main ?
     
  5. navit

    navit Гость

    Эти ошибки потомучто функции main не хватает?
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Код (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;
    }
     
  7. navit

    navit Гость

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

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Попробуй вот этот вариант:
    Код (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;
    }
     
  9. navit

    navit Гость

    Заработало! Спасибо за помощь ;)
     
Загрузка...
Похожие Темы - Вопрос Одномерный массив
  1. Генералл
    Ответов:
    2
    Просмотров:
    53
  2. ApplePen
    Ответов:
    0
    Просмотров:
    55
  3. gURaBA_N
    Ответов:
    3
    Просмотров:
    91
  4. ghost
    Ответов:
    1
    Просмотров:
    86
  5. kartaman
    Ответов:
    0
    Просмотров:
    126
Статус темы:
Закрыта.

Поделиться этой страницей