Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/41: Рейтинг темы: голосов - 41, средняя оценка - 4.61
 Аватар для Arum
1 / 1 / 0
Регистрация: 23.05.2010
Сообщений: 5

Найти минимальный элемент массива и определить его местоположение

23.05.2010, 23:07. Показов 8760. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание:Дан массив чисел. Найти минимальный элемент массива и определить его местоположение.

у меня программка неправильное значение показывает...
Когда компилируешь ошибок нет и минимальный элемент он правильно находит...но вот его местоположение показывает неверно должнобыть 5,а он показывает 8...
Подскажите пожалуйста где ошибка!?!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdio.h"
#include <iostream>
using namespace std;
void main()
{
 setlocale (LC_ALL,"Russian");
   int i=1;
   int b[] = {8,9,0,-3,5,-7,-1};
   int n = sizeof(b)/sizeof(b[0]);
   int min = b[i];
   int nmin = i;
   for (min=b[0],nmin=0,i=1; i < n; i++)
if (b[i] < min)
   {
       min = b[i];nmin=i;
   }
   for (int i = 0; i < n; i++)
       cout << " " << b[i];
cout << endl << "Минимальный элемент: " << min<<"\n";
cout<<"Его номер: "<<i+1<<"\n";
 }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.05.2010, 23:07
Ответы с готовыми решениями:

Найти в матрице минимальный элемент и определить его местоположение
Дана матрица целых чисел размером nхm. Найти в ней минимальный элемент и определить его местоположение (номер строки и номер столбца). Если...

Найти минимальный элемент среди отрицательных чисел массива и его местоположение в массиве
Доброго времени суток знатоки! Помогите решить задачу: Дан массив Х(N, M). Найти минимальный элемент среди отрицательных чисел массива и...

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

7
 Аватар для chum
111 / 51 / 5
Регистрация: 19.01.2010
Сообщений: 139
23.05.2010, 23:09
Вы ошиблись разделом форума: здесь Delphi...
0
35 / 35 / 8
Регистрация: 22.05.2010
Сообщений: 107
24.05.2010, 13:59
C++
1
2
3
4
5
6
int min(int size, int array[]) {
    int result = 0;
    for (int i = 1; i < size; i++)
        if (array[i] < array[result]) result = i;
    return result;
}
Функция принимает количество элементов массива и его имя, а возвращает индекс минимального элемента массива. Значит,
C++
1
min(n, array)
- индекс минимального элемента массива array из n элементов, а
C++
1
array[max(n, array)]
- значение этого элемента.
0
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
24.05.2010, 14:27
Arum, ошибка у вас не одна:
-массив индексируется, начиная с 0, а у вас с 1:
C++
1
for (min=b[0],nmin=0,i=1; i < n; i++)
также не понятно, зачем вы в вышестоящей строчке вновь присваиваете min и nmin начальные значения - вы их уже неправильно присвоили в
C++
1
2
 int min = b[i];
   int nmin = i;
изначально i вы присвоили 1, получается 0-й элемент вы просто игнорируете (а если бы именно он был минимальным?..)
и последнее: зачем вы выводите как индекс минимального элемента i+1? Ведь вы его посчитали в переменной nmin... ее и выводите. (а i+1 у вас выводит 8 позицию, т.к. предидущий цикл остановил значение i на 7 (последней) позиции, а вы к ней еще прибавили 1.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
void main()
{
 setlocale (LC_ALL,"Russian");
   int i=0;
   int b[] = {8,9,0,-3,5,-7,-1};
   int n = sizeof(b)/sizeof(b[0]);
   int min = b[i];
   int nmin = i;
   for (i=1; i < n; i++)
       if (b[i] < min)
       {
         min = b[i];
         nmin=i;
       }
   for (int i = 0; i < n; i++)
       cout << " " << b[i];
 
    cout << endl << "Минимальный элемент: " << min<<"\n";
    cout<<"Его номер: "<<nmin<<"\n";
 }
Удачи вам
0
35 / 35 / 8
Регистрация: 22.05.2010
Сообщений: 107
24.05.2010, 14:42
В инициализации цикла for всё правильно. Нет смысла сравнивать первый элемент с самим собой.
0
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
24.05.2010, 15:03
Цитата Сообщение от vladislavchick Посмотреть сообщение
В инициализации цикла for всё правильно. Нет смысла сравнивать первый элемент с самим собой.
Имелась ввиду инициализация i не внутри цикла, а при объявлении переменной (в for с i все в порядке).
Не знаю, как вы, но я вижу нецелесообразным дважды инициализировать переменные min и nmin, тем более внутри цикла for.
Возможно, я и ошибаюсь.
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
24.05.2010, 15:10
Такой вариант еще:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
 
int main ()
{
    const int size=10;
    int MAS[size]={2,9,6,4,1,11,15,7,10,8};
    int *min = std::min_element (MAS, MAS+size);
    int index_min = min-MAS;
 
    std::cout << "Min: " << *min << std::endl;
    std::cout << "Index: " << index_min << std::endl;
    system ("pause");
    return 0;
}
0
 Аватар для Arum
1 / 1 / 0
Регистрация: 23.05.2010
Сообщений: 5
24.05.2010, 18:28  [ТС]
Огромноное спасибо!!!!!
Правильный код...
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
#include "stdio.h"
#include <iostream>
using namespace std;
void main()
{
 setlocale (LC_ALL,"Russian");
   int i=1;
   int b[] = {8,9,0,-3,5,-7,-1};
 
   //определим размер массива
   int n = sizeof(b)/sizeof(b[0]);
 
   //объявим переменную для хранения минимального элемента-min
   //объявим переменную для хранения его номера-nmin
   //присвоим начальное значение, равное нулевому элементу
   //а в nmax его номер(то есть ноль)
   int min = *b;//*b=b[0]
   int nmin = 0;
//просмотрим все элементы начиная с 1-ого элемента
   for (int i=1; i < n; i++)
if (b[i] < min)
       //если i-й элемент будет меньше
       //текущего минимального значения,
   {    
       //то изменим это минимальное значение
       //на значение i-го элемента
       //а его номер будет равен i
       
          min = b[i];nmin=i;
   }
    
   //выведем на экран элементы массива
   for (int i = 0; i < n; i++)
       cout << " " << b[i];
   //и минимальный элемент
cout << endl << "Минимальный элемент: " << min<<"\n";
// и его номер
cout<<"Его номер: "<<nmin+1<<"\n"; }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.05.2010, 18:28
Помогаю со студенческими работами здесь

Найти минимальный элемент на главной диагонали матрицы и его местоположение
Найти минимальный элемент на главной диагонали и его местоположение, затем поменять его местами с элем. Первого столбца, четвертой строки ...

Определить минимальный элемент массива и его порядковый номер, заменить минимальный элемент массива нулём
Определить минимальный элемент массива С и его порядковый номер, замените минимальный элемент массива нулём. Массив С(К),...

Найти минимальный элемент массива B(15) и определить его порядковый номер
Помогите с задачкой на массив: Найти минимальный элемент массива B(15) и определить его порядковый номер.

Найти наименьший элемент массива и его местоположение
Здравствуйте. Помогите, пожалуйста, решить задачи. что-то 2 из 10 задач ни как не хотят решаться :( 1.Составить программу для...

Найти в матрице наименьший элемент и определить его местоположение.
Выручайте, мне позарез надо программу: Дана матрица n*m, состоящая из натуральных чисел. Найти в ней наименьший элемент и определить ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru