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

Поиск максимального значения массива - C++

Восстановить пароль Регистрация
 
Maksim_2011
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 28
03.01.2012, 07:48     Поиск максимального значения массива #1
Люди помогите с двумя задачками:
1. В матрице размером 4 на 5 найти сумму наибольших элементов столбцов.
2. Вычислить значение max (x(0)+x(n-1),x(1)+x(n-2),x(2)+x(n-3),....,x((n-1)/2)+x(n/2), где x(i) - элементы вещественного массива x из n элементов. Массив содержит 18 элементов. Поиск максимального значения оформить в виде функции.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.01.2012, 08:04     Поиск максимального значения массива #2
Цитата Сообщение от Maksim_2011 Посмотреть сообщение
1. В матрице размером 4 на 5 найти сумму наибольших элементов столбцов.
Если уже есть матрица a[4][5], то можно так:
C++
1
2
3
4
5
6
7
8
9
10
int n=4, m=5, s=0, max, i, j;
for(j=0; j<m; j++)
{
    max=0;
    for(i=1; i<n; i++)
        if(a[i][j]>a[max][j])
            max=i;
    s+=a[max][j];
}
// вот здесь в переменной s нужный ответ
Maksim_2011
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 28
03.01.2012, 13:27  [ТС]     Поиск максимального значения массива #3
А с другой задачкой поможешь?
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.01.2012, 13:59     Поиск максимального значения массива #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Maksim_2011 Посмотреть сообщение
2. Вычислить значение max (x(0)+x(n-1),x(1)+x(n-2),x(2)+x(n-3),....,x((n-1)/2)+x(n/2), где x(i) - элементы вещественного массива x из n элементов. Массив содержит 18 элементов. Поиск максимального значения оформить в виде функции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
double f(double x[], int n)
{
    double max=x[0]+x[17];
    int i;
    for(i=1; i<n/2; i++)
        if(max<x[i]+x[n-1-i])
            max=x[i]+x[n-1-i];
    return max;
}
int main()
{
    double x[18]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,25,16,17,18};
    cout<<f(x, 18)<<endl;
 
    return 0;
}
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
03.01.2012, 16:59     Поиск максимального значения массива #5
Цитата Сообщение от valeriikozlov Посмотреть сообщение
double x[18]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,25,16,17,18};
Не позорьтесь
C++
1
for(int i = 0; i < 18; arr[i] = ++i);
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.01.2012, 18:38     Поиск максимального значения массива #6
Цитата Сообщение от Dekio Посмотреть сообщение
Не позорьтесь
Dekio, нужно быть внимательнее - числа идут не попорядку как Вам кажется с первого раза. Сделано специально для наглядности - иначе все суммы пар были бы одинаковы.
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
03.01.2012, 19:05     Поиск максимального значения массива #7
Цитата Сообщение от valeriikozlov Посмотреть сообщение
числа идут не попорядку
Таки да, вместо 15 стоит 25.
Но тем не менее, если нужно было бы 1 число другое вставить, можно переделать немного цикл
C++
1
for(int i = 0; i < 18; arr[i] = ++i == 15 ? 25 : i);
Для 1 числа все же проще, чем все записывать
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.01.2012, 19:41     Поиск максимального значения массива #8
Dekio, вот в таком виде:
C++
1
double x[18]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,25,16,17,18};
удобнее проверить программу: изменил одну пару, изменил другую, изменил третью - видишь результат, видишь и сам массив, все видно, все наглядно.
Цель преследовалась именно эта. Дальнейший спор (если он будет) не поддержу.
А как вводить данные будет автор темы: то ли как Вы, то ли как я, то ли с клавиатуры, то ли из файла, то ли заполнять случайными числами, то ли еще каким-нибудь вариантом, решать только ему.
go
03.01.2012, 21:02
  #9

Не по теме:

Цитата Сообщение от Dekio Посмотреть сообщение
Не позорьтесь
По-моему это все придирке, вы бы еще std::generate предложили

Maksim_2011
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 28
04.01.2012, 19:57  [ТС]     Поиск максимального значения массива #10
Ещё такой вопросик, цель программы поиск максимального элемента же? А при запуске программы он выводит, число, в данном случаи, 29, т.е. к максимальному прибавляет 3. А почему?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.01.2012, 20:02     Поиск максимального значения массива #11
Maksim_2011, нет. У программы цель такая, какую Вы написали формулу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2012, 21:02     Поиск максимального значения массива
Еще ссылки по теме:

C++ Поиск максимального значения в списке.
C++ Поиск максимального и минимального значения в матрице
C++ Поиск индекса и значения максимального элемента в массиве через ссылку

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.01.2012, 21:02     Поиск максимального значения массива #12
Цитата Сообщение от Maksim_2011 Посмотреть сообщение
Ещё такой вопросик, цель программы поиск максимального элемента же? А при запуске программы он выводит, число, в данном случаи, 29, т.е. к максимальному прибавляет 3. А почему?
только не 3 прибавляет, а 4.
У Вас задание:

Цитата Сообщение от Maksim_2011 Посмотреть сообщение
Вычислить значение max (x(0)+x(n-1),x(1)+x(n-2),x(2)+x(n-3),....,x((n-1)/2)+x(n/2), где x(i) - элементы вещественного массива x из n элементов.
Т.е. нужно найти не максимальный элемент этого массива:
C++
1
double x[18]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,25,16,17,18};
а максимальное среди:
1+18
2+17
3+16
4+25
5+14
и т.д.
Yandex
Объявления
04.01.2012, 21:02     Поиск максимального значения массива
Ответ Создать тему
Опции темы

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