Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 77
1

Найти минимальный элемент массива

06.12.2015, 16:11. Показов 2346. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан массив N[13]. Найти и вывести минимальный элемент и его индекс. Если сумма минимального элемента и его индекса больше 12, то все нулевые элементы заменить на минимальный элемент, иначе все отрицательные умножить на 2. Вывести полученный массив.

Вопрос: У меня почти все получилось, то есть на 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
    const int N = 13;
    int n[N];
 
    for (int i = 0; i < N;i++){
        cout << "Vvedite elementy N[" << i << "]:";
        cin >> n[i];
    }
 
    
    int min = 0;
    int sum = 0;
 
    for (int i = 1; i < N; i++)
    {
        if (n[i] < n[min])
        {
            min = i;
            sum = n[min] + min;
        }
 
        if (sum > 12) {
            if (n[i] == 0) {
                n[i] = n[min];
            }
        }
        else {
            if (n[i] < 0) {
                n[i] = n[i] * 2;
            }
        }
 
        std::cout << n[i] << ' ';
        std::cout << std::endl;
        
    }
 
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2015, 16:11
Ответы с готовыми решениями:

Записать элементы массива X, удовлетворяющие условию в массив Y; найти минимальный элемент массива X
4. Записать элементы массива X, удовлетворяющие условию Х, подряд в массив Y =. Определить...

Найти минимальный элемент массива (через указатели, запрещено обращаться к элементам массива по индексам)
Написать программу, создающую массив из 10 случайных целых чисел из отрезка . Вывести на...

Найти минимальный элемент массива
В одномерном массиве, состоящем из п целых элементов, вычислить 2) минимальный элемент массива;...

Найти минимальный элемент массива
Здравствуйте . Кто-нибудь может помочь с решением и объяснением работы программы ? Создать...

20
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
06.12.2015, 16:32 2
39 строку удалите
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 16:33 3
отмена....
0
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
06.12.2015, 16:33 4
Цитата Сообщение от omuradil Посмотреть сообщение
У меня почти все получилось
скорей всего у того ,у кого вы код сперли
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 16:36 5
Цитата Сообщение от omuradil Посмотреть сообщение
if (n[i] < n[min])
* * * * {
* * * * * * min = i;
* * * * * * sum = n[min] + min;
* * * * }
if (sum > 12) {
* * * * * * if (n[i] == 0) {
* * * * * * * * n[i] = n[min];
* * * * * * }
* * * * }
* * * * else {
* * * * * * if (n[i] < 0) {
* * * * * * * * n[i] = n[i] * 2;
* * * * * * }
* * * * }
может найти минимальный элемент сначала, а потом уже все остальное делать?!
0
Модератор
Эксперт С++
13678 / 10888 / 6465
Регистрация: 18.12.2011
Сообщений: 29,056
06.12.2015, 16:38 6
Надо сначала найти минимальный элемент, а потом В НОВОМ цикле делать все остальное.
0
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 77
06.12.2015, 17:46  [ТС] 7
Так вообще не работает, плииз помогите
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
    const int N = 13;
    int n[N];
 
    for (int i = 0; i < N;i++){
        cout << "Vvedite elementy N[" << i << "]:";
        cin >> n[i];
    }
 
    
    int min = 0;
    int sum = 0, nul = 0;
 
    for (int i = 1; i < N; i++)
    {
        if (n[i] < n[min])
        {
            min = i;
            sum = n[min] + min;
        }       
    }
 
    for (int i = 0; i < N; i++) {
        if (sum > 12) {
            if (n[i] == 0) {
                n[i] = n[min];
            }
        }
    }
 
    for (int i = 0; i < N; i++) {
            if (n[i] < 0) {
                n[i] = n[i] * 2;
            }
    }
 
    std::cout << n[i] << ' ';
    std::cout << std::endl;
 
    system("pause");
    return 0;
}
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 17:51 8
Цитата Сообщение от omuradil Посмотреть сообщение
Так вообще не работает, плииз помогите
C++
1
2
3
4
5
6
7
8
if (sum > 12) 
 for (int i = 0; i < N; i++) 
       if (n[i] == 0) 
            n[i] = n[min];
 else
    for (int i = 0; i < N; i++) 
         if (n[i] < 0) 
             n[i] *=  2;
0
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 77
06.12.2015, 17:58  [ТС] 9
Вот написал по вашему: Но ничего не выводит что не так?
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
    const int N = 13;
    int n[N];
 
    for (int i = 0; i < N;i++){
        cout << "Vvedite elementy N[" << i << "]:";
        cin >> n[i];
    }
 
    
    int min = 0;
    int sum = 0, nul = 0;
 
    for (int i = 1; i < N; i++)
    {
        if (n[i] < n[min])
        {
            min = i;
            sum = n[min] + min;
        }       
    }
 
    for (int i = 0; i < N; i++) {
        if (sum > 12)
            for (int i = 0; i < N; i++)
                if (n[i] == 0)
                    n[i] = n[min];
                else
                    for (int i = 0; i < N; i++)
                        if (n[i] < 0)
                            n[i] *= 2;
 
        std::cout << n[i] << ' ';
        std::cout << std::endl;
    }
    system("pause");
    return 0;
}
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 18:01 10
Цитата Сообщение от omuradil Посмотреть сообщение
Вот написал по вашему: Но ничего не выводит что не так?
у меня не так
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
    const int N = 13;
    int n[N];
 
    for (int i = 0; i < N;i++){
        cout << "Vvedite elementy N[" << i << "]:";
        cin >> n[i];
    }
 
    
    int min = 0;
    int sum = 0, nul = 0;
 
    for (int i = 1; i < N; i++)
        if (n[i] < n[min])
        {
            min = i;
            sum = n[min] + min;
        }       
    
 
    
        if (sum > 12)
        {
            for (int i = 0; i < N; i++)
                if (n[i] == 0)
                    n[i] = n[min];
        }
        else
            for (int i = 0; i < N; i++)
                 if (n[i] < 0)
                      n[i] *= 2;
 
  for (int i = 0; i < N; i++) 
        std::cout << n[i] << ' ';
        std::cout << std::endl;
   
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 77
06.12.2015, 18:10  [ТС] 11
Можете написать если не трудно полный код, пожалуйста... Просто к завтрашнему дню должен показать, а на изучение физически времени не хватет...
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 18:11 12
Цитата Сообщение от omuradil Посмотреть сообщение
Можете написать если не трудно полный код, пожалуйста...
а выше что?
0
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 77
06.12.2015, 18:14  [ТС] 13
Просто тут нулевой и минимальный не выводит... а только массив...

Добавлено через 2 минуты
То есть не заменяет...
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 18:22 14
Цитата Сообщение от omuradil Посмотреть сообщение
Если сумма минимального элемента и его индекса больше 12, то все нулевые элементы
Просто выполнение этого условия не возможно.
Если минимальным будет элемент 0, и даже его индекс будет 12 - то уже условие не выполнилось, и что тогда заменять?
0
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 77
06.12.2015, 18:27  [ТС] 15
больше 12, то все нулевые элементы заменить на минимальный элемент, иначе все отрицательные умножить на 2
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 18:29 16
Цитата Сообщение от omuradil Посмотреть сообщение
больше 12, то все нулевые элементы заменить на минимальный элемент
приведи массив, где выполнится это условие.
0
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 77
06.12.2015, 18:31  [ТС] 17
Но я проверял, даж если больше 12 то код выводит массив и все, никаких изменений...

Добавлено через 1 минуту
В вашем коде написано, но почему то не выполняет...

Добавлено через 26 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (sum > 12)
    {
        for (int i = 0; i < N; i++)
            if (n[i] == 0)
                n[i] = n[min];
    }
    else
        for (int i = 0; i < N; i++)
            if (n[i] < 0)
                n[i] *= 2;
 
    for (int i = 0; i < N; i++)
        std::cout << n[i] << ' ';
    std::cout << std::endl;
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 18:32 18
Цитата Сообщение от omuradil Посмотреть сообщение
Но я проверял, даж если больше 12 то код выводит массив и все, никаких изменений...
Добавлено через 1 минуту
В вашем коде написано, но почему то не выполняет...
потому что нет, блин, такого случая, не возможно!!!!
0
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 77
06.12.2015, 19:23  [ТС] 19
Может тут с выводом проблемы, тоесть тут проверяется циклом и выводит и все то есть нигде не видно чтоб вывод cout << MIN нету

Добавлено через 47 минут
Понял... Но решил сделать без первого условия то есть сразу Если меньше 12 то все отрицательные умножить на 2. Скажу преподу что задачка неправильная.... Но опять у меня проблемка: Теперь отрицательный не умножается на 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
29
30
31
32
33
34
35
36
37
38
39
40
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
    const int N = 13;
    int n[N];
 
    for (int i = 0; i < N;i++) {
        cout << "Vvedite elementy N[" << i << "]:";
        cin >> n[i];
    }
 
 
    int min = 0;
    int sum = 0, nul = 0;
    
    cout << "Vyvod: ";
    for (int i = 0; i < N; i++) {
        if (min > n[i]) {
            min = n[i];
        }
        if (min + i < 12) {
            for (int i= 0; i < N; i++) {
                if (n[i] < 0) {
                    n[i] = n[i] * 2;
                }
            }
            
        }
        cout << n[i]<<" ";
        
    }
 
    
 
    system("pause");
    return 0;
}
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 19:26 20
Цитата Сообщение от omuradil Посмотреть сообщение
cout << "Vyvod: ";
* * for (int i = 0; i < N; i++) {
* * * * if (min > n[i]) {
* * * * * * min = n[i];
* * * * }
* * * * if (min + i < 12) {
* * * * * * for (int i= 0; i < N; i++) {
* * * * * * * * if (n[i] < 0) {
* * * * * * * * * * n[i] = n[i] * 2;
* * * * * * * * }
* * * * * * }
}
* * * * cout << n[i]<<" ";
}
Нельзя все делать в одном цикле, тебе особенно!
поиск среднего в одном умножение и вывод в другом!
1
06.12.2015, 19:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2015, 19:26
Помогаю со студенческими работами здесь

Найти минимальный элемент массива
1. Найти минимальный элемент массива. 2. Найти сумму элементов массива, расположенных между...

Найти минимальный элемент массива
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент...

Найти минимальный элемент массива
Помогите, пожалуйста. 2. Дан массив А (15). Найти минимальный элемент массива.

Найти минимальный элемент массива
Найти минимальный элемент массива


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru