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

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

Восстановить пароль Регистрация
 
NSTR
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 76
06.02.2014, 16:52     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #1
Напишите функцию, которая получает массив 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};
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2014, 16:52     Напишите функцию, которая получает массив A ненулевых целых чисел размера N
Посмотрите здесь:

C++ Реализовать функцию, которая получает массив и возвращает количество простых чисел в нем.
массив A ненулевых целых чисел размера N C++
C++ . Напишите функцию, которая получает три переменные вещественного типа
C++ Напишите функцию, которая получает три переменные вещественного типа
C++ Напишите функцию, которая получает две переменные целого типа: A и B
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:08     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #2
Что то не то с условием, у Вас по условию сравнение с 4 идет всегда при данном массиве. Это сомнительно может имелось ввиду на убывание или возрастание проверка?
NSTR
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 76
06.02.2014, 17:13  [ТС]     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #3
Цитата Сообщение от mustimur Посмотреть сообщение
Что то не то с условием, у Вас по условию сравнение с 4 идет всегда при данном массиве. Это сомнительно может имелось ввиду на убывание или возрастание проверка?
Не. Например в массиве 4 элемента, так вот нужно, чтобы программа выдала элемент в массиве, удовлетворяющий условие AN-1 (3,2,1,0). При этом проверка должна идти с конца массива.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:17     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #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;
}
NSTR
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 76
06.02.2014, 17:28  [ТС]     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #5
C++
1
int a[n] = {9,1,2,3};
В ответе 1 по прежнему =(
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:32     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #6
Цитата Сообщение от NSTR Посмотреть сообщение
В ответе 1 по прежнему =(
Дайте пол литра и объясняйте на примерах: вектор и что должен вернуть....
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.02.2014, 17:32     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #7
Цитата Сообщение от mustimur Посмотреть сообщение
for (int i = N-1 ; i > 0; --i)
if (A[i] < A[N-1]){
b= A[i];
}
просит найти значение последнего элемента, подходящего условию.
если делаете цикл с конца, то прерывайте его при нахождении нужного элемента break'ом
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:33     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #8
А то так не разберешь

Добавлено через 49 секунд
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
просит найти значение последнего элемента, подходящего условию.
если делаете цикл с конца, то прерывайте его при нахождении нужного элемента break'ом
так у него изначально в роде так код работал.....
NSTR
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 76
06.02.2014, 17:40  [ТС]     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #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};
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.02.2014, 17:46     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2014, 17:47     Напишите функцию, которая получает массив A ненулевых целых чисел размера N
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 17:47     Напишите функцию, которая получает массив A ненулевых целых чисел размера N #11
В своем коде (том что ты показал, в первом посте) поменяй 22 строчку на
C++
1
 if (A[i] < A[N-2])
Yandex
Объявления
06.02.2014, 17:47     Напишите функцию, которая получает массив A ненулевых целых чисел размера N
Ответ Создать тему
Опции темы

Текущее время: 19:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru