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

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

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

Максимальное умножение - C++

30.09.2011, 18:34. Просмотров 565. Ответов 5
Метки нет (Все метки)

Дано N целых чисел. Требуется выбрать из них два таких числа, произведение которых максимально.

Ввод
Вводится сначала число N - количество чисел в последовательности (2 ≤ N ≤ 100). Далее записана сама последовательность: N целых чисел, по модулю не превышающих 1000.
Вывод
Выведите два искомых числа в любом порядке. Если существует несколько различных пар чисел, дающих максимальное произведение, то выведите любую из них.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2011, 18:34     Максимальное умножение
Посмотрите здесь:

Задано 4 матрицы. Провести сложение, умножение, умножение на число - C++
Задано 4 матрицы A,B,C,D размером 4х4.Вычеслить такие матрицы: F,G,T. G=3/4 A+B F=B*(2D) T=c/5

Класс Квадратная матрица. Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей - C++
Задание: Класс «Квадратная матрица». Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей. Нужно...

умножение - C++
#include "stdafx.h" #include "iostream" #include <time.h> using namespace std; #include <iomanip> int *vvod (int x, int y) ...

Умножение матриц - C++
#include <iostream> #include <ctime> // в ней функция time #include <conio.h> #include <stdio.h> using namespace std; void...

Умножение Карацубы - C++
Помогите, пожалуйста, довести до ума код: #include <iostream> typedef unsigned int int32; typedef unsigned long long int64; ...

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

Умножение матриц - C++
Есть 2 функции перемножения квадратных матриц N*N вторая функция транспонирует вторую матрицу для того, чтобы перемножение шло строка на...

Умножение матриц - C++
Помогите с умножением матриц создал две идентичные таблицы 3х3 и тепер хочу вывести матрицу этих двух таблиц, но в переменной suma...

Умножение матриц - C++
Доброго всем времени суток! Нужна Ваша помощь. Задали сделать задачку на C++ в консоли - умножение матриц 10 на 10 с помощью...

Умножение дробей - C++
где П - произведение. то есть сначала делим i+1 на i+2 (при i=2). этот результат умножаем на i+1 на i+2 (при i=3) и так далее. n- число...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.09.2011, 18:50     Максимальное умножение #2
Ну и? Вы не можете найти 2 наибольших числа? Ну или 2 наименьших, главное, чтобы оба были отрицательными.
MrGluck
Модератор
Эксперт CЭксперт С++
6969 / 4140 / 588
Регистрация: 29.11.2010
Сообщений: 10,978
30.09.2011, 18:57     Максимальное умножение #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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <conio.h>
 
int main()
{
    int x, max1, max2, min1 = 0, min2 = 0;
    do
    {
        std::cout<< "Enter length: ";
        std::cin>> x;
        if (x < 2 || x > 100)
            std::cout<< "Error, try another length\n";
    } while (x < 2 || x > 100);
    int *N = new int[x];
    for (int i=0; i < x; i++)
    {
        std::cout<< "Enter value: ";
        std::cin>> N[i];
        if (i == 0)
            max1 = max2 = N[0];
        if (N[i] > max1)
        {
            if (N[i] > max2)
            {
                max1 = max2;
                max2 = N[i];
            }
            else
                max1 = N[i];
        }
        if (N[i] < min1)
        {
            if (N[i] < min2)
            {
                min1 = min2;
                min2 = N[i];
            }
            else
                min1 = N[i];
        }
    }
    if (max1 * max2 > min1 * min2)
        std::cout<< max1<< " "<< max2;
    else
        std::cout<< min1<< " "<< min2;
    getch();
    return 0;
}
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.09.2011, 19:02     Максимальное умножение #4
Вам _никто_ из преподавателей не обязан объяснять, как решается домашняя задача с точностью до символа. Вы банально не хотите открыть книгу, и прочитать пару-тройку глав, в которых как раз и описываются if-конструкции. Эта задача не на знание синтаксиса языка, а, в большей степени, на логическое мышление.
mikador
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 55
30.09.2011, 19:03  [ТС]     Максимальное умножение #5
Цитата Сообщение от soon Посмотреть сообщение
Вам _никто_ из преподавателей не обязан объяснять, как решается домашняя задача с точностью до символа. Вы банально не хотите открыть книгу, и прочитать пару-тройку глав, в которых как раз и описываются if-конструкции. Эта задача не на знание синтаксиса языка, а, в большей степени, на логическое мышление.
да ты крутой =)
alkagolik
Заблокирован
30.09.2011, 19:21     Максимальное умножение #6
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
51
52
53
54
55
56
57
58
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <math.h>
 
#define MODUL     1000
#define MAX_NUM   100
#define MIN_NUM   2
 
int compare(const void *i, const void *j){
  return *(int *)i - *(int *)j;
}
 
int main(){
    int *array, i, k, result, N, tmp;
 
    do{
        printf("enter number:\n");
        scanf("%d", &N);
    } while(N <= MIN_NUM && N >= MAX_NUM);
 
    array = (int *) malloc (N * sizeof(int));
    srand(time(NULL));
 
    for(i = 0; i != N; ++i){
        if(i % 2)
            array[i] = rand() % MODUL + 1;
        else
            array[i] = (rand() % MODUL + 1) * (-1);
    }
 
    qsort(array, N, sizeof(int), compare);
 
    result = array[N - 1] * array[N - 2];
    tmp = array[0] * array[1];
 
    printf("sourse array\n");
    for(i = 0; i != N; ++i)
        printf(" %d", array[i]);
 
    if(abs(tmp) > abs(result)){
        result = array[0] * array[1];
        printf("\nmax result: %d\n", result);
        printf("number1: %d, number2: %d\n", array[0], array[1]);
    }
    else if(abs(tmp) < abs(result)){
        printf("\nmax result: %d\n", result);
        printf("number1: %d, number2: %d\n", array[N - 1], array[N - 2]);
    }
    else{
        printf("\nmax result: %d\n", result);
        printf("number1: %d, number2: %d\n", array[0], array[1]);
        printf("number3: %d, number4: %d\n", array[N - 1], array[N - 2]);
    }
    free(array);
 
    return 0;
}
Yandex
Объявления
30.09.2011, 19:21     Максимальное умножение
Ответ Создать тему
Опции темы

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