С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Напишите функцию, которая получает массив A ненулевых целых чисел размера N - C++

06.02.2014, 16:52. Просмотров 621. Ответов 10
Метки нет (Все метки)

Напишите функцию, которая получает массив A ненулевых целых чисел размера N. Она возвращает значение последнего из тех его элементов AK, которые удовлетворяют неравенству AK<AN-1. Если таких элементов нет, то функция возвращает 0.
Получилась такая программа:
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
#include <iostream>
 
using namespace std;
 
int func (int A[], int N);
 
int main()
{
    const int n = 4;
    int a[n] = {9,1,4,8};
    int q;
    q = func (a, n);
    cout << q<<endl;
    system("pause");
    return 0;
}
 
int func (int A[], int N)
{
    int i;
    for (int i = N-1 ; i > 0; --i)
        if (A[i] < A[N-1]){
            return A[i];
            break;}
    if ( i != -1)
        return 0;
}
Но работает не правильно. При данном массиве выдает "4"
А если так, то вообще последний элемент массива не замечает.
C++
1
int a[n] = {9,1,4,2};
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2014, 16:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напишите функцию, которая получает массив A ненулевых целых чисел размера N (C++):

Функция получает массив A ненулевых целых чисел размера N - C++
Функция получает массив A ненулевых целых чисел размера N. Она возвращает значение последнего из тех его элементов AK, которые...

массив A ненулевых целых чисел размера N - C++
20, Функция получает массив A ненулевых целых чисел размера N. Она возвращает значение первого из тех его элементов AK, которые...

Реализовать функцию, которая получает массив и возвращает количество простых чисел в нем. - C++
НАРОД ПОМОГИТЕ С ЗАДАЧЕЙ,ЕСТЬ ИСХОДНИК. РЕАЛИЗОВАТЬ ФУНКЦИЮ КОТОРАЯ ПОЛУЧАЕТ МАССИВ И ВОЗВРАЩАЕТ КОЛ-ВО ПРОСТЫХ ЧИСЕЛ В НЕМ ...

Дан массив A размера N. Напишите функцию, которая выводит его элементы в следующем порядке: - C++
Дан массив A размера N. Напишите функцию, которая выводит его элементы в следующем порядке: AN-1,A0,AN-2,A1,AN-3,A2,... . #include...

Напишите функцию, которая получает две переменные целого типа: A и B - C++
Напишите функцию, которая получает две переменные целого типа: A и B. Если их значения не отрицательны, то функция присваивает каждой...

Напишите функцию, которая получает три переменные вещественного типа - C++
11. Напишите функцию, которая получает три переменные вещественного типа с разными значениями: A, B, C. Если их значения упорядочены по...

10
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:08 #2
Что то не то с условием, у Вас по условию сравнение с 4 идет всегда при данном массиве. Это сомнительно может имелось ввиду на убывание или возрастание проверка?
1
NSTR
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 85
06.02.2014, 17:13  [ТС] #3
Цитата Сообщение от mustimur Посмотреть сообщение
Что то не то с условием, у Вас по условию сравнение с 4 идет всегда при данном массиве. Это сомнительно может имелось ввиду на убывание или возрастание проверка?
Не. Например в массиве 4 элемента, так вот нужно, чтобы программа выдала элемент в массиве, удовлетворяющий условие AN-1 (3,2,1,0). При этом проверка должна идти с конца массива.
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:17 #4
Ошибся сравнение же у вас с 8, как только первый раз условие выполняется он выходит а это как раз на 4 (4<8)

Добавлено через 2 минуты
Далеко не уверен что правильно понял задание но вот как то так
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
#include <iostream>
 
using namespace std;
 
int func (int A[], int N);
 
int main()
{
    const int n = 4;
    int a[n] = {9,1,4,8};
    int q;
    q = func (a, n);
    cout << q<<endl;
    system("pause");
    return 0;
}
 
int func (int A[], int N)
{
    int i,b;
    for (int i = N-1 ; i > 0; --i)
        if (A[i] < A[N-1]){
           b= A[i];
            }
    if ( i == -1)
        return 0;
    else return b;
}
1
NSTR
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 85
06.02.2014, 17:28  [ТС] #5
C++
1
int a[n] = {9,1,2,3};
В ответе 1 по прежнему =(
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:32 #6
Цитата Сообщение от NSTR Посмотреть сообщение
В ответе 1 по прежнему =(
Дайте пол литра и объясняйте на примерах: вектор и что должен вернуть....
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.02.2014, 17:32 #7
Цитата Сообщение от mustimur Посмотреть сообщение
for (int i = N-1 ; i > 0; --i)
if (A[i] < A[N-1]){
b= A[i];
}
просит найти значение последнего элемента, подходящего условию.
если делаете цикл с конца, то прерывайте его при нахождении нужного элемента break'ом
1
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:33 #8
А то так не разберешь

Добавлено через 49 секунд
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
просит найти значение последнего элемента, подходящего условию.
если делаете цикл с конца, то прерывайте его при нахождении нужного элемента break'ом
так у него изначально в роде так код работал.....
1
NSTR
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 85
06.02.2014, 17:40  [ТС] #9
Цитата Сообщение от mustimur Посмотреть сообщение
Дайте пол литра и объясняйте на примерах: вектор и что должен вернуть....
Ну вот допусти массив:
C++
1
int a[n] = {9,1,3,2};
По-логике должен ответ быть 2 ( 2 удовлетворяет условие, так как A2<A4-1), но в ответе 1, что с break'ом, что без него.
Кстати с break'ом получился правильный ответ в этом массиве:
C++
1
int a[n] = {9,1,2,3};
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.02.2014, 17:46 #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
#include <iostream>
 
int function(int *array, size_t arraySize);
 
int main()
{
    const size_t arraySize = 5;
    int array[arraySize] = { 0, 1, 2, 3, -1 }; //элемент N-1 = 3, последний элемент меньший 3 = -1
    std::cout << "Result element: " << function(array, arraySize) << std::endl;
 
    std::system("pause");
    return 0;
}
 
int function(int *array, size_t arraySize)
{
    int resultElement;
    size_t elementIndex = arraySize - 2;
    for (size_t i = 0; i < arraySize; i++) {
        if (array[i] < array[elementIndex]) {
            resultElement = array[i];
        }
    }
    return resultElement;
}
1
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:47 #11
В своем коде (том что ты показал, в первом посте) поменяй 22 строчку на
C++
1
 if (A[i] < A[N-2])
1
06.02.2014, 17:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2014, 17:47
Привет! Вот еще темы с ответами:

Напишите функцию, которая получает две переменные целого типа: A и B - C++
Напишите функцию, которая получает две переменные целого типа: A и B. Если их значения не равны, то функция присваивает каждой переменной...

Напишите функцию, которая получает две переменные целого типа - C++
9. Напишите функцию, которая получает две переменные целого типа: A и B. Если их значения не равны, то функция присваивает каждой...

. Напишите функцию, которая получает три переменные вещественного типа - C++
10. Напишите функцию, которая получает три переменные вещественного типа с разными значениями: A, B, C. Если их значения упорядочены по...

Напишите функцию, которая получает на вход строку цифр, и возвращает соответствующее целочисленное значение - C++
Напишите функцию atoi (), которая получает строку цифр, и возвращает соответствующее int. Например, atoi (&quot;123&quot;) - это 123


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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