Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
sanek15
1 / 1 / 0
Регистрация: 10.10.2011
Сообщений: 89
1

Найти сумму максимального значения элементов с четными индексами и минимального значения элементов с нечетными индексами в одномерном массиве

22.10.2011, 13:24. Просмотров 1471. Ответов 7
Метки нет (Все метки)

дан одномерный массив А[N,N].найти мах(a2,a4..)+мин(a1,a3)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
int y[50];
cin>>N;
for(int i=0; i<N; i++)
cin>>y[i];
max=y[1]; min=y[0];
for( i=0; i<N; i++)
{if (i%2==0 &&y[i]<min )
min=y[i];
 if(y[i]>max && (i%2)==1)
  max=y[i];
  }
  cout<<"max + min= "<<max+min;
 
        return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2011, 13:24
Ответы с готовыми решениями:

В массиве определить произведение элементов с четными индексами и сумму элементов с нечетными индексами
Создание многомодульных программ ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ. -Составить программу,содержащую...

Найти сумму элементов с четными индексами и произведение элементов с нечетными индексами
Задан массив S(К). Найти сумму элементов с четными индексами и произведение элементов с нечетными...

Найти сумму значений положительных элементов выборки с нечетными и отрицательных элементов с четными индексами
Здравствуйте! Дано задание: Найти сумму значений положительных элементов выборки, имеющих нечетные...

Найти разницу сумм элементов с четными и нечетными индексами
Написать программу решения задачи с помощью несколько функций. Значения элементов массива вычислить...

Найти разницу сумм элементов с четными и нечетными индексами
Написать программу решения задачи с помощью несколько функций. Значения элементов массива вычислить...

7
S.L.I.M.
15 / 12 / 4
Регистрация: 03.02.2011
Сообщений: 96
22.10.2011, 13:42 2
так а где вопрос???
0
alkagolik
Заблокирован
22.10.2011, 13:42 3
вот, смотрите. можно и отрицательные прикрутить
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 <stdio.h>
#include <stdlib.h>
#include <time.h>
 
const int N = 10;
 
int main()
{
    int A[N], i, max = 0, min = 0;
    srand(time(0));
 
    for (i = 0; i < N; ++i)
        A[i] = rand() % 40;
 
    max = A[0]; min = A[1];
 
    for (i = 2; i < N; ++i)
        if (i % 2)
            min = (min > A[i]) ? A[i] : min;
        else
            max = (max < A[i]) ? A[i] : max;
 
    for (i = 0; i < N; ++i)
        printf("%i ", A[i]);
    printf("\n min = %i\n max = %i\n\n ", min, max);
    
    return 0;
}
0
soon
2550 / 1315 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.10.2011, 14:28 4
Цитата Сообщение от sanek15 Посмотреть сообщение
дан одномерный массив А[N,N]
Круто.
На плюсах с stl.
C проверкой на ввод элементов < 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>
#include <vector>
 
int main()
{
    std::vector<int> vec;
    int num;
    while(std::cin >> num)
        vec.push_back(num);
    std::vector<int>::iterator itr = vec.begin();
    int max, min;
    if((itr == vec.end()) || ((++itr) == vec.end()))
    {
        std::cout << "You entered a few number. Exiting...\n";
        return 0;
    }
    for(max = *(--itr), min = *(++itr); itr != vec.end(); ++itr)
    {
        if(((itr - vec.begin()) % 2) && (*itr < min))
            min = *itr;
        else if(!((itr - vec.begin()) % 2) && (*itr > max))
            max = *itr;
    }
    std::cout << "Max of even = " << max << std::endl
              << "Min of odd = " << min << std::endl
              << "Sum = " << max + min << std::endl;
    return 0;
}
Если четным является не 0-й а 1-й элемент

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>
#include <vector>
 
int main()
{
    std::vector<int> vec;
    int num;
    while(std::cin >> num)
        vec.push_back(num);
    std::vector<int>::iterator itr = vec.begin();
    int max, min;
    if((itr == vec.end()) || ((++itr) == vec.end()))
    {
        std::cout << "You entered a few number. Exiting...\n";
        return 0;
    }
    for(min = *(--itr), max = *(++itr); itr != vec.end(); ++itr)
    {
        if(!((itr - vec.begin()) % 2) && (*itr < min))
            min = *itr;
        else if(((itr - vec.begin()) % 2) && (*itr > max))
            max = *itr;
    }
    std::cout << "Max of even = " << max << std::endl
              << "Min of odd = " << min << std::endl
              << "Sum = " << max + min << std::endl;
    return 0;
}
0
22.10.2011, 14:28
anonimious
13 / 13 / 4
Регистрация: 17.10.2011
Сообщений: 54
22.10.2011, 15:08 5
Вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <time.h>
using namespace std;
const int size=10; int mas[size];
int max(int mas[]) {int a=mas[0];
    for(int i=0;i<size;i+=2)
        if(a<mas[i]) a=mas[i];
    return a;}
int min(int mas[]) {int a=mas[1];
    for(int i=1;i<=size;i+=2)
        if(a>mas[i]) a=mas[i];
    return a;}
void main(){
    setlocale(LC_ALL,"rus"); srand(unsigned(time(NULL)));
    for(int i=0;i<size;i++) mas[i]=rand()%90+10;
    for(int i=0;i<size;i++) cout<<mas[i]<<' ';
    cout<<"\nМинимальное с нечетными индексами "<<min(mas)<<endl;
    cout<<"Максимальное с четными индексами "<<max(mas)<<endl;
    cout<<"Их сумма "<<min(mas)+max(mas)<<endl;}
0
soon
2550 / 1315 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.10.2011, 16:57 6
Цитата Сообщение от anonimious
Вот
Четыре полных прохода по массиву, последний из них однозначно лишний. Можно было обойтись всего одним.
0
anonimious
13 / 13 / 4
Регистрация: 17.10.2011
Сообщений: 54
23.10.2011, 13:42 7
soon, я новичок, многого еще не знаю. Можете выложить упрощенный вариант?
0
soon
2550 / 1315 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
23.10.2011, 14:47 8
C++
1
2
3
4
5
6
7
8
9
for(int i = 0; i < n; ++i)
{
    arr[i] = rand() % 11 - 5;
    std::cout << arr[i] << '\t';
    if((!i) || (!(i % 2) && (arr[i] > max)))
        max = arr[i];
    else if((i == 1) || ((i % 2) && (arr[i] < min)))
        min = arr[i];
}
0
23.10.2011, 14:47
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2011, 14:47

В одномерном массиве вещественных чисел поменять местами элементы с четными и нечетными индексами.
В одномерном массиве вещественных чисел поменять местами элементы с четными и нечетными индексами....

Найти частное средних арифметических значений элементов последовательности с нечетными и четными индексами
Разработать программу, которая вводит последовательность вещественных чисел и находит частное...

В двумерном массиве заменить элементы строк с четными индексами элементами строк с нечетными индексами
Дан массив чисел, А (5, 4). Превратить массив , заменив элементы строк с четными индексами...


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

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

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