5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
1

В чем заключается ошибка? Поиск минимального элемента двухмерного массива

27.12.2016, 10:09. Показов 1049. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Есть массив 5 на 3( матрица), нужно найти значение минимальное, мне выводит ноль, не понимаю в чем тут ошибка.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{  
    double arr [5][3];
    int mi , mj;
    double min;
    int  i,j;
 
    min=arr[0][0];    mi=0;     mj=0;
    for (i=0; i<5; i++)
       for (j=0; j<3; j++)
          if (arr[i][j]< min)
            {
               min=arr[i][j];      mi=i;        mj=j;
            }
 
   Edit1->Text=FloatToStr(min)  ;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2016, 10:09
Ответы с готовыми решениями:

Программа поиска минимального элемента. В чем ошибка?
Прога должна найти минимальный элемент в двухмерном массиве. Почему то не работает, где ошибка? ...

Поиск минимального элемента массива
в массиве хранится информация о стоимости 1 кг 20 видов конфет. определить сколько стоят самые...

Поиск минимального элемента массива
Вот составила программу,но мне ошибку выдает,не подскажите ли,в чем дело? unit Unit2; interface...

Поиск минимального элемента массива
Здравствуйте, мне нужна ваша помощь в ассемлере (TASM). Сам я в низкоуровневом программировании...

6
1493 / 1208 / 821
Регистрация: 29.02.2016
Сообщений: 3,597
27.12.2016, 10:24 2
наверное у вас все элементы массива равны 0 ?
0
5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
27.12.2016, 10:30  [ТС] 3
Не совсем. Я забыл ввести массив конечно же. Но что-то он и так неправильно ищет.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
   min=arr[0][0];    mi=0;     mj=0;
    for (i=0; i<5; i++)
       for (j=0; j<3; j++)
         {   arr[i][j] = StrToFloat(StringGrid1->Cells[j][i]);  }
 
 
 
          if (arr[i][j]< min)
            {
 
               min=arr[i][j];      mi=i;        mj=j;
 
            }
 
Edit1->Text=FloatToStr(min)  ;
0
1493 / 1208 / 821
Регистрация: 29.02.2016
Сообщений: 3,597
27.12.2016, 10:42 4
Лучший ответ Сообщение было отмечено slavek777 как решение

Решение

все остальное в порядке, вот тест вашего кода, выдает
-1 3 0

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    double A[5][3] ={{4,2,3},
                  {0,2,1},
                  {1,2,1},
                  {-1,2,1},
                  {2,2,3}};
 
    int mi , mj;
    double min;
    int  i,j;
 
    min=A[0][0]; 
    mi=0;
    mj=0;
    for (i=0; i<5; i++)
       for (j=0; j<3; j++)
          if (A[i][j]< min)
            {
               min=A[i][j];      mi=i;        mj=j;
            }
        cout<<min<<" "<<mi<<" "<<mj<<endl;
    system("pause");
    return 0;
0
5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
27.12.2016, 11:03  [ТС] 5
Спасибо большое!
А можно еще вопросик. Только тут одномерный массив и максим. элемент. Мне выбивает случайное число из памяти.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
int  arr [10];
int i,max;
for ( i=0; i <=9; i++)
{ arr [i]=StrToInt(Memo1->Lines->Strings[i]);}
max = arr[0];
if (arr[i] > max)
   { max = arr[i] ; }
Edit1->Text=IntToStr(max);
 
 
 
 
 
}
0
1493 / 1208 / 821
Регистрация: 29.02.2016
Сообщений: 3,597
27.12.2016, 11:07 6
это сравнение
C++
1
if (arr[i] > max)
нужно делать в цикле, как то так
C++
1
2
3
for ( i=0; i <=9; i++)
if (arr[i] > max)
    max = arr[i] ;
0
5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
27.12.2016, 11:50  [ТС] 7
Еще раз большое спасибо!


В итоге получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
 
  int  arr [10];
int i,max;
for ( i=0; i <=9; i++)
{ arr [i]=StrToInt(Memo1->Lines->Strings[i]);}
max = arr[0];
for ( i=0; i <=9; i++)
if (arr[i] > max)
    max = arr[i] ;
Edit1->Text=IntToStr(max);
 
 
 
 
}
Добавлено через 33 минуты
Извините, еще раз прошу помочь. Ошибка конвертации. Все числа действительные, на что и указал.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
 
double arr [4][7];
double max ;
int  i,j;
 max = arr [0][0];
 
for (  i=0 ; i<=4; ++i)
  for (  j=0 ; j<=7; ++j)
  { arr [i][j] = StrToFloat(StringGrid1->Cells[j][i]); }
 
   for (  i=0 ; i<=4; ++i)
  for (  j=0 ; j<=7; ++j)
    if ( arr[i][j]> max)
    max = arr[i][j];
 Edit1->Text=FloatToStr(max);
 
 
 
 
 
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2016, 11:50
Помогаю со студенческими работами здесь

Поиск минимального элемента массива
Написать программу которая выводит минимальный элемент введённого с клавиатуры массива целых чисел....

В чем заключается ошибка?
https://www.cyberforum.ru/attachment.php?attachmentid=502778&amp;stc=1&amp;d=1426742401

Ошибка в чем заключается?
Где тут ошибка в алгоритме ?

В чем заключается ошибка ?
procedure TForm1.Button1Click(Sender: TObject); var i,j : integer; begin randomize; for i:=0 to...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru