Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
kollmykov
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 24
#1

Функция, которая возвращает требуемое значение - C++

14.03.2014, 10:03. Просмотров 1127. Ответов 31
Метки нет (Все метки)

Дан одномерный массив из n чисел. Элементами массива являются случайные целые числа от -10 до 10 включительно. Напишите функцию, которая возвращает требуемое значение. Массив является параметром функции. Печать результата выполняется в функции main. Найти пару отрицательных чисел с максимальной суммой (индексы элементов).
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2014, 10:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция, которая возвращает требуемое значение (C++):

Функция, которая возвращает значение в классе - C++
Уважаемые, подскажите пожалуйста. У меня есть программа. (созд. списка; различные операции над списком и т.д.) Я пытаюсь ее переделать,...

Функция которая возвращает значение и цикл - C++
Задача функции: Ввод прекращается при наполнении массива либо когда пользователь вводит нечисловое значение и возвращает действительное...

Функция, которая только возвращает значение - C++
Как реализовать функцию, которая только возвращает значение. Вот, например: #include "stdafx.h" #include <locale> #include <iostream>...

Функция, которая возвращает значение суммы элементов строк - C++
надо чтоб функция возвращала значение суммы строки в конце строки, однако где-то ошибка и получается только значение суммы первой...

Функция которая возвращает класс - C++
Есть функция считывания вектора с формы Вызов функции выглядит так Vector1.GetVector(GridOfVector1); CVector...

Функция, которая возвращает массив - C++
Как сделать так чтобы функция возвращала указатель на рандомно сгенерированный массив. Входящими данными будет количество строк и столбцов...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TenGen
Будущее рядом
98 / 96 / 20
Регистрация: 06.03.2014
Сообщений: 342
14.03.2014, 10:10 #2
kollmykov, в каком смысле требуемое? Возвращала значение в ячейке с определенным индексом или поиск определенного числа в массиве?
0
kollmykov
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 24
14.03.2014, 10:13  [ТС] #3
TenGen, пару отрицательных чисел с максимальной суммой
0
TenGen
Будущее рядом
98 / 96 / 20
Регистрация: 06.03.2014
Сообщений: 342
14.03.2014, 10:32 #4
kollmykov,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
struct numbers
{
int a, b;
};
 
numbers func(int *array, int array_size)
{
numbers result;
result.a = -1;
result.b = -1;
for (int i = array_size-1; i >= 0; i--)
if (*(array+i) < 0)
{
if (result.a == -1) result.a = i;
else if (result.b == -1)
{
result.b = i;
return result;
}
}
return result;
}
вроде вот так

Добавлено через 9 минут
вызов функции будет примерно
C++
1
numbers k = func(&myarray[0], int n);
1
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
14.03.2014, 10:50 #5
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include<ctime>
#include<pair.h>
std::pair<int, int> FindElement(const int*, const int);
int main ()
{
    const int N = 20;
    int arr[N];
    srand(time(NULL));
    for(int i = 0; i < N; ++i)
        arr[i] = rand() % 21 - 10;
 
    for(int i = 0; i < N; ++i)
       std::cout << arr[i] << ' ';
    std::cout << std::endl;
    std::pair<int, int> elem = FindElement(arr, N);
    std::cout << elem.first << ' ' << elem.second << std::endl;
 
    return 0;
}
 
std::pair<int, int> FindElement(const int* arr, const int N)
{
    int first = 0;
    int second = 0;
    if (N < 3)
        std::cerr << "Error size array!" << std::endl;
    else {
        while (arr[first] >=0 0 && first < N)
            first++;
        if (first == N)
            std::cerr << "Not find negative element" << std::endl;
        for(int i = 0; i < N; ++i) {
            if((arr[i] < 0) && (arr[first] < arr[i]))
                first = i;
        }
        if(first == 0)
            ++second;
        while ((arr[second] >= 0 || second == first) && second < N)
            second++;
        if (second == N)
            std::cerr << "Not find negative element" << std::endl;
 
        for(int i = 0; i < N; ++i) {
            if((arr[i] < 0) && (i != first) && (arr[second] < arr[i]))
                second = i;
        }
    }
    return std::pair<int, int>(first, second);
}
1
kollmykov
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 24
14.03.2014, 11:31  [ТС] #6
Цитата Сообщение от Ilot Посмотреть сообщение
Кликните здесь для просмотра всего текста
1>c:\users\artem\documents\visual studio 2008\projects\kolmykov_pm1_3_prog_v10\kolmykov_pm1_3_prog_v10\kolmykov_v10.cpp(3) : fatal error C1083: Не удается открыть файл include: pair.h: No such file or directory
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
14.03.2014, 11:46 #7
kollmykov,
C++
1
#include<pair>
0
kollmykov
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 24
14.03.2014, 12:17  [ТС] #8
Цитата Сообщение от Ilot Посмотреть сообщение
Код C++
1
#include<pair>
1>c:\users\artem\documents\visual studio 2008\projects\kolmykov_pm1_3_prog_v10\kolmykov_pm1_3_prog_v10\kolmykov_v10.cpp(3) : fatal error C1083: Не удается открыть файл include: pair: No such file or directory
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
14.03.2014, 12:20 #9
C++
1
#include <utility>
2
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
14.03.2014, 12:22 #10
Пнял. Счаз...
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include<ctime>
void FindElement(const int*, const int, int&, int&);
int main ()
{
    const int N = 10;
    int arr[N];
    int elem_first, elem_second;
    srand(time(NULL));
    for(int i = 0; i < N; ++i)
        arr[i] = rand() % 21 - 10;
 
    for(int i = 0; i < N; ++i)
       std::cout << arr[i] << ' ';
    std::cout << std::endl;
    FindElement(arr, N, elem_first, elem_second);
    std::cout << elem_first << ' ' << elem_second << std::endl;
 
    return 0;
}
 
void FindElement(const int* arr, const int N, int& first, int &second)
{
    first = second = 0;
    if (N < 3)
        std::cerr << "Error size array!" << std::endl;
    else {
        while (arr[first] >=0 && first < N)
            first++;
        if (first == N)
            std::cerr << "Not find negative element" << std::endl;
        for(int i = 0; i < N; ++i) {
            if((arr[i] < 0) && (arr[first] < arr[i]))
                first = i;
        }
        if(first == 0)
            ++second;
        while ((arr[second] >= 0 || second == first) && second < N)
            second++;
        if (second == N)
            std::cerr << "Not find negative element" << std::endl;
 
        for(int i = 0; i < N; ++i) {
            if((arr[i] < 0) && (i != first) && (arr[second] < arr[i]))
                second = i;
        }
    }
}

John Prick, точно.
1
kollmykov
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 24
14.03.2014, 12:44  [ТС] #11
Цитата Сообщение от John Prick Посмотреть сообщение
Код C++
1
#include <utility>
warning C4244: аргумент: преобразование 'time_t' в 'unsigned int', возможна потеря данных
1>c:\users\artem\documents\visual studio 2008\projects\kolmykov_pm1_3_prog_v10\kolmykov_pm1_3_prog_v10\kolmykov_v10.cpp(29) : error C2143: синтаксическая ошибка: отсутствие ")" перед "константа"
1>c:\users\artem\documents\visual studio 2008\projects\kolmykov_pm1_3_prog_v10\kolmykov_pm1_3_prog_v10\kolmykov_v10.cpp(29) : error C2059: синтаксическая ошибка: )
1>c:\users\artem\documents\visual studio 2008\projects\kolmykov_pm1_3_prog_v10\kolmykov_pm1_3_prog_v10\kolmykov_v10.cpp(30) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "first"

еще повылазило)
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
14.03.2014, 12:46 #12
kollmykov, это к Ilot, так как код его (её).
0
kollmykov
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 24
14.03.2014, 12:49  [ТС] #13
так там ееще больше ошибок навылазило)
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
14.03.2014, 13:02 #14
C++
1
while (arr[first] >=0 0 && first < N)
C++
1
while ((arr[first] >= 0) && (first < N))
1
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
14.03.2014, 13:05 #15
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ

Не по теме:

Цитата Сообщение от John Prick Посмотреть сообщение
её


Цитата Сообщение от kollmykov Посмотреть сообщение
так там ееще больше ошибок навылазило)
Эти ошибки косяки студии. Попробуйте так:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include<ctime>
void FindElement(const int*, const int, int&, int&);
int main ()
{
    const int N = 10;
    int arr[N];
    int elem_first, elem_second;
    srand(unsigned int(time(NULL)));
    for(int i = 0; i < N; ++i)
        arr[i] = rand() % 21 - 10;
 
    for(int i = 0; i < N; ++i)
       std::cout << arr[i] << ' ';
    std::cout << std::endl;
    FindElement(arr, N, elem_first, elem_second);
    std::cout << elem_first << ' ' << elem_second << std::endl;
 
    return 0;
}
 
void FindElement(const int* arr, const int N, int& first, int &second)
{
    first = second = 0;
    if (N < 3)
        std::cerr << "Error size array!" << std::endl;
    else {
        while ((arr[first] >=0) && (first < N))
            first++;
        if (first == N)
            std::cerr << "Not find negative element" << std::endl;
        for(int i = 0; i < N; ++i) {
            if((arr[i] < 0) && (arr[first] < arr[i]))
                first = i;
        }
        if(first == 0)
            ++second;
        while (((arr[second] >= 0) || (second == first)) && (second < N))
            second++;
        if (second == N)
            std::cerr << "Not find negative element" << std::endl;
 
        for(int i = 0; i < N; ++i) {
            if((arr[i] < 0) && (i != first) && (arr[second] < arr[i]))
                second = i;
        }
    }
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2014, 13:05
Привет! Вот еще темы с ответами:

Функция, которая возвращает массив - C++
Здравствуйте. Подскажите, пожалуйста, как правильно написать код - есть функция; она должна вернуть массив, который создается в этой же...

Функция, которая возвращает количество её вызовов - C++
Напишите функцию, которая возвращает количество её вызовов (вызвали в первый раз - возвращает 1, второй раз - 2 и т.д.).

Функция, которая возвращает максимальное и минимальное - C++
Кто может дать материал на тему: Функция, которая возвращает максимальное и минимальное Теорию или задачу.. Заранее благодарен)

Функция которая возвращает динамический массив - C++
Здравствуйте! у меня такой глупый вопрос. Я все время путаюсь и никак не могу четко сформулировать на него ответ. Помогите мне раз и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.03.2014, 13:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru