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

В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
08.06.2011, 16:45     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #1
В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы.
+++++++++++++++++++
Это надо сделать используя динамический массив,ещё нужно учесть,что строки могут иметь различную длину
++++++++++++++++++++
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# include<iostream.h>
# include<math.h>
 
void main(void)
{
        int b[100][3];
        int i, j, t, p=0, k=0, q;
        int **a;
        cout << "Size: "<<endl;
        cout << "n=";
        int n;  cin >> n;
        cout << "m=";
        int m;  cin >> m;
        a = new int*[n];
        for (i=0; i<n; i++)
                a[i] = new int [m];
     cout <<"vvod massiva"<<endl;
     for (i=0;i<n;i++)
         for (j=0;j<m;j++)
    {
                  cout <<"a("<<i<<","<<j<<")=";
                  cin>>a[i][j];
        if (j==m-1)
                      cout <<""<<endl;
    }
     cout <<""<<endl;
 
  for (i=0;i<n;i++)
  {
      q=0;
      p=a[i][0];
      for (j=0;j<m;j++)
      {
         t=a[i][j];     
         if (t<p)
           {
        p=t;
        q=j;
           }
         if (j==m-1)
           {
                       b[k][0]=p;
                       b[k][1]=i;
                       b[k][2]=q;
           k++;
           }
      }
  }
 //for (k=0;k<n;k++)
 //{
   //  cout <<"p="<<b[k][0]<<endl;
   //  cout <<"i="<<b[k][1]<<endl;
   //  cout <<"j="<<b[k][2]<<endl;
 //}
 
  cout <<"Otvet:"<<endl;
  p=0;
  for (k=0;k<n;k++)
  {
     t=b[k][0];
     if (t>p)
     {
        p=t;
                  i=k;
     }
     if (k==n-1)
       {
          cout <<"P="<<b[i][0]<<endl;
          cout <<"i="<<b[i][1]<<endl;
          cout <<"j="<<b[i][2]<<endl;
        }
 
  }
  cout <<"  "<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2011, 16:45     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы.
Посмотрите здесь:

Как написать программу, чтобы найти каждой строке матрицы мин элемент? C++
В каждой строке находится минимальный элемент,затем среди этих чисел выбирается максимальное.Напечатать индексы выбранного элемента C++
В двумерном массиве найти в каждой строке максимальный элемент, затем среди этих чисел выбрать минимальный C++
Поменять местами мин и макс элемент в каждой строке C++
C++ Дана действительная матрица размером пхт, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих ч
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.06.2011, 16:56     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #2
ну если это массив, то как строки могут иметь различную длину?
динамический массив:
C++
1
2
3
int **arr = new int* [n];
for (int i = 0; i < n; ++i)
     arr[i] = new int [m]
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
08.06.2011, 16:58  [ТС]     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #3
Цитата Сообщение от soon Посмотреть сообщение
ну если это массив, то как строки могут иметь различную длину?
динамический массив:
C++
1
2
3
int **arr = new int* [n];
for (int i = 0; i < n; ++i)
     arr[i] = new int [m]
это в заданий написано) нужно как-то это замутить,я не могу догнать как,а сдавать надо в ближайщиий час)
вот ещё вариант
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
using namespace std;
 
int main()
{
        int rows, cols;
        int i, j;
        int max_i, max_j, min_j; // ГЁГ*äåêñû
        int counter = 0;
 
        cout << "Enter rows: ";
        cin >> rows;
        cout << "Enter cols: ";
        cin >> cols;
        
        int** arr = new int *[rows];
        for(i = 0; i < rows; i++)
        {
                arr[i] = new int [cols];
        }
        
        // ââîä
        for (i = 0; i < rows; ++i)
        {
                for (j = 0; j < cols; ++j)
                {
                        cout << "Enter arr[" << i << "][" << j << "]: ";
                        cin >> arr[i][j];
                }
        }
        
        // âûâîä
        cout << "\nSource array:\n";
        for (i = 0; i < rows; ++i)
        {
                for (j = 0; j < cols; ++j)
                {
                        cout << arr[i][j] << '\t';
                }
                cout << '\n';
        }
        
        // ГЁГ№ГҐГ¬ ìèГ* (+ Г¬Г*ГЄГ± ñðåäè Г*ГЁГµ)
        max_i = 0;
        max_j = 0;
 
        for (i = 0; i < rows; ++i)
        {
                min_j = 0;
                
                for (j = 0; j < cols; ++j)
                {
                        if (arr[i][j] < arr[i][min_j])
                        {
                                // Г§Г*ïîìèГ*Г*ГҐГ¬ ГЁГ*äåêñ ìèГ*.ýëåìåГ*ГІГ* ГЄГ*æäîé ñòðîêè
                                min_j = j;
                        }
                }
 
                if(arr[i][min_j] > arr[max_i][max_j] || i == 0)
                {
                        // Г§Г*ïîìèГ*Г*ГҐГ¬ ГЁГ*äåêñû Г¬Г*êñèìóìГ*
                                max_i = i;
                                max_j = min_j;
                }
                        
                // ГЇГҐГ·Г*ГІГ*ГҐГ¬ ìèГ*èìóìû
                cout << "Minimum in " << i << " row is arr" 
                        << "[" << i << "][" << min_j << "] = " 
                        << arr[i][min_j] << '\n';
        }
        
        // ГЇГҐГ·Г*ГІГ*ГҐГ¬ Г¬Г*êñèìóì
        cout << "Maximal element of minimums is arr[" 
                << max_i << "][" << max_j << "] = " 
                << arr[max_i][max_j] << '\n';
        
        // ГЁГ№ГҐГ¬ ñîâïГ*äåГ*ГЁГї
        cout << "\nEqual elements:";
        for (j = 0; j < cols; ++j)
        {
                if (arr[max_i][j] == arr[max_i][max_j])
                {
                        ++counter;
                        cout << " arr[" << max_i << "][" << j << "] ";
                }
        }
        
        cout << "\n(there are " << counter << " elements with walue of " << arr[max_i][max_j] << " in this row)\n";
        
        return 0;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.06.2011, 17:01     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #4
Цитата Сообщение от soon Посмотреть сообщение
C++
1
2
3
int **arr = new int* [n];
for (int i = 0; i < n; ++i)
     arr[i] = new int [m];
вам нужен был динамический массив? дак вот он! для чисел с плавающей запятой меняете int на float
программу я проверил, она рабочая так что, вставляйте, не бойтесь
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
08.06.2011, 17:03  [ТС]     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #5
Цитата Сообщение от soon Посмотреть сообщение
вам нужен был динамический массив? дак вот он! для чисел с плавающей запятой меняете int на float
программу я проверил, она рабочая так что, вставляйте, не бойтесь
спасибо конечно,но мне помимо этого нужно чтобы можно было различную длину строк выбирать
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.06.2011, 17:10     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
std::cout << "Enter n\n";
std::cin >> n;
std::cout << "Enter max length of line";
std::cin >> m;
int **arr = new int* [n];
for (int i = 0; i < n; ++i)
     arr[i] = new int [m];
for (int i = 0; i < n; ++i)
{
    int tmp;
    std::cout << "Enter length of " << i+1 << " line: ";
    std::cin >> tmp;
    if (tmp > m)
        return 0;
    for (int j = 0; j < tmp; ++j)
        std::cin >> arr[i][j];
    for (int j = tmp; j < m; ++j)
        arr[i][j] = 0;
}
как-то так наверное... числа, расположенные после числа на максимальном месте = 0.
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
08.06.2011, 18:02  [ТС]     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #7
Цитата Сообщение от soon Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
std::cout << "Enter n\n";
std::cin >> n;
std::cout << "Enter max length of line";
std::cin >> m;
int **arr = new int* [n];
for (int i = 0; i < n; ++i)
     arr[i] = new int [m];
for (int i = 0; i < n; ++i)
{
    int tmp;
    std::cout << "Enter length of " << i+1 << " line: ";
    std::cin >> tmp;
    if (tmp > m)
        return 0;
    for (int j = 0; j < tmp; ++j)
        std::cin >> arr[i][j];
    for (int j = tmp; j < m; ++j)
        arr[i][j] = 0;
}
как-то так наверное... числа, расположенные после числа на максимальном месте = 0.
напишите полную прогу,если не тяжело

Добавлено через 33 минуты
up plizzzzz

Добавлено через 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////////
// Функция переворота строки массива
void reverse(int * arr, int size)
{
        int i, temp;
        for (i = 0; i < size / 2; ++i)
        {
                temp = arr[i];
                arr[i] = arr[size - i - 1];
                arr[size - i - 1] = temp;
        }
}
//////////////////////////////////////////////////////////////
int main()
{
        int *a, **matrix;
        int rows, cols;
        int i, j;
        
        // ввод количества строк
        cout << "Kol-vo strok: ";
        cin >> rows;
        
        matrix = new int*[rows];
        a = new int[rows];
        
        // ввод длин каждой строки
        for(i = 0; i < rows; i++)
        {
        cout << "Dlina " << i << "-j stroki = " ;
        cin >> cols;
        matrix[i] = new int[cols];
        a[i] = cols;
        }
 
        // заполнение массива
        for(i = 0; i < rows; ++i)
        {
                for(j = 0; j < a[i]; ++j)
                {
                        cout << "Vvedite element matrix[" << i << "][" << j << "]: ";
                        cin >> matrix[i][j];
                }
        }
 
        // вывод исходного массива
        cout << "\nIshodnyj massiv:\n";
        for(i = 0; i < rows; ++i)
        {
                for(j = 0; j < a[i]; ++j)
                {
                        cout << matrix[i][j] << ' ';
                }
                cout << '\n';
        }
        
        // переворачиваем каждую строку
        for(i = 0; i < rows; ++i)
        {
                reverse(matrix[i], a[i]);
        }
 
        // вывод полученного массива
        cout << "\nPoluchennyj massiv:\n";
        for(i = 0; i < rows; ++i)
        {
                for(j = 0; j < a[i]; ++j)
                {
                        cout << matrix[i][j] << ' ';
                }
                cout << '\n';
        }
 
 
        return 0;
}
возможно выдернуть из этого кода можно

Добавлено через 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <iostream>
#include <iomanip>
using namespace std;
 
void Fill(int r, int c, int **m);
void Clear(int r, int c, int **m);
 
int main(int argc, char* argv[])
{
        setlocale(LC_ALL,"Russian");
        int rows = 0, cols = 0;
        int **matrix;
        int *minInRow = NULL;
        int i=0, j=0;
rows:
        cout<<"VVedite kolu4estvo strok: ";
        cin>>rows;
        if(rows>100 || rows<2)
        {
                system("cls");
                cout<<"VVedute zna4enue ot 2 do 100\n";
                goto rows;
        }
cols:
        cout<<"VVedite kol-vo stolbcov: ";
        cin>>cols;
        if(cols>50 || cols<2)
        {
                system("cls");
                cout<<"VVedute zna4enue ot 2 do 50\n"; 
                goto cols;
        }
        matrix = new int *[rows];
        minInRow = new int[rows];
        for(i=0;i<rows;i++)
        {
                matrix[i] = new int[cols];
                minInRow[i] = 0;
        }
        system("cls");
        Clear(rows, cols, matrix);
        for(i=0;i<rows;i++)
        {
                for(j=0;j<cols;j++)
                {
                        cout<<"matrix("<<i<<","<<j<<")=\n";
                        cin>>matrix[i][j];
                        Fill(rows,cols,matrix);
                }
        }
        int min = 0;
        for(i=0;i<rows;i++)
        {
                minInRow[i] = matrix[i][0];
                for(j=0;j<cols;j++)
                {
                        if(matrix[i][j]<minInRow[i])
                        {
                                minInRow[i] = matrix[i][j];
                        }
                }
        }
        int max[2]={0};
        max[0] = minInRow[0];
        max[1] = 0;
        for(i=0;i<rows;i++)
        {
                if(minInRow[i]>max[0])
                {
                        max[0] = minInRow[i];
                        max[1] = i;
                }
        }
        for(i=0;i<rows;i++)
        {
                cout<<"Minimum v stroke"<<i<<" = "<<minInRow[i]<<endl;
        }
        cout<<"Maximum = "<<max[0]<<" index stroki "<<max[1]<<endl;
        for(i=0;i<cols;i++)
        {
                if(matrix[max[1]][i]==max[0])
                {
                        cout<<"Element "<<max[0]<<" v stroke s indeksom "<<max[1]<<"  vstre4aetc9 v stolbce no indexsy "<<i<<endl;
                }
        }
        
        
        for(i=0;i<rows;i++)
        {
                delete [] matrix[i];
        }
        delete []matrix;
        delete []minInRow;
 
        return 0;
}
void Fill(int r, int c, int **m)
{
        system("cls");
        for(int i=0;i<r;i++)
        {
                for(int j=0;j<c;j++)
                {
                        if(m[i][j]!=-99999999)
                        cout<<setw(5)<<m[i][j];
                }
                cout<<endl;
        }
}
void Clear(int r, int c, int **m)
{
        for(int i=0;i<r;i++)
        {
                for(int j=0;j<c;j++)
                {
                        m[i][j]=-99999999;
                }
        }
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.06.2011, 18:03     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #8
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
using namespace std;
 
int main()
{
        int rows, cols;
        int i, j, n, m;
        int max_i, max_j, min_j; 
        int counter = 0;
        cout << "Enter n\n";
        cin >> n;
        cout << "Enter max length of line\n";
        cin >> m;
        int **arr = new int* [n];
        for (int i = 0; i < n; ++i)
            arr[i] = new int [m];
        for (int i = 0; i < n; ++i)
        {
            int tmp;
            cout << "Enter length of " << i+1 << " line: ";
            cin >> tmp;
            if (tmp > m)
                return 0;
            for (int j = 0; j < tmp; ++j)
                std::cin >> arr[i][j];
            for (int j = tmp; j < m; ++j)
                arr[i][j] = 0;
        }
        cout << "\nSource array:\n";
        for (i = 0; i < n; ++i)
        {
                int j = 0;
                while ((arr[i][j] !=0)&&(j < m))
                {
                        cout << arr[i][j] << '\t';
                        ++j;
                }
                j = 0;
                cout << '\n';
        }
        max_i = 0;
        max_j = 0;
 
        for (i = 0; i < n; ++i)
        {
                min_j = 0;
                j = 0;
                while ((arr[i][j] !=0)&&(j < m))
                {
                        if (arr[i][j] < arr[i][min_j])
                        {
                                min_j = j;
                        }
                        ++j;
                }
 
                if(arr[i][min_j] > arr[max_i][max_j] || i == 0)
                {
                                max_i = i;
                                max_j = min_j;
                }
                        
                cout << "Minimum in " << i << " row is arr" 
                        << "[" << i << "][" << min_j << "] = " 
                        << arr[i][min_j] << '\n';
        }
        
        cout << "Maximal element of minimums is arr[" 
                << max_i << "][" << max_j << "] = " 
                << arr[max_i][max_j] << '\n';
        
        cout << "\nEqual elements:";
        j = 0;
        while ((arr[max_i][j] != 0) && (j < m))
        {
                if (arr[max_i][j] == arr[max_i][max_j])
                {
                        ++counter;
                        cout << " arr[" << max_i << "][" << j << "] ";
                }
                j++;
        }
        
        cout << "\n(there are " << counter << " elements with walue of " << arr[max_i][max_j] << " in this row)\n";
        system("pause");
        return 0;
}
фууф, вот.
ps/ Не работает, если один из элементов будет равен 0
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
08.06.2011, 18:05  [ТС]     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #9
Цитата Сообщение от soon Посмотреть сообщение
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
using namespace std;
 
int main()
{
        int rows, cols;
        int i, j, n, m;
        int max_i, max_j, min_j; 
        int counter = 0;
        cout << "Enter n\n";
        cin >> n;
        cout << "Enter max length of line\n";
        cin >> m;
        int **arr = new int* [n];
        for (int i = 0; i < n; ++i)
            arr[i] = new int [m];
        for (int i = 0; i < n; ++i)
        {
            int tmp;
            cout << "Enter length of " << i+1 << " line: ";
            cin >> tmp;
            if (tmp > m)
                return 0;
            for (int j = 0; j < tmp; ++j)
                std::cin >> arr[i][j];
            for (int j = tmp; j < m; ++j)
                arr[i][j] = 0;
        }
        cout << "\nSource array:\n";
        for (i = 0; i < n; ++i)
        {
                int j = 0;
                while ((arr[i][j] !=0)&&(j < m))
                {
                        cout << arr[i][j] << '\t';
                        ++j;
                }
                j = 0;
                cout << '\n';
        }
        max_i = 0;
        max_j = 0;
 
        for (i = 0; i < n; ++i)
        {
                min_j = 0;
                j = 0;
                while ((arr[i][j] !=0)&&(j < m))
                {
                        if (arr[i][j] < arr[i][min_j])
                        {
                                min_j = j;
                        }
                        ++j;
                }
 
                if(arr[i][min_j] > arr[max_i][max_j] || i == 0)
                {
                                max_i = i;
                                max_j = min_j;
                }
                        
                cout << "Minimum in " << i << " row is arr" 
                        << "[" << i << "][" << min_j << "] = " 
                        << arr[i][min_j] << '\n';
        }
        
        cout << "Maximal element of minimums is arr[" 
                << max_i << "][" << max_j << "] = " 
                << arr[max_i][max_j] << '\n';
        
        cout << "\nEqual elements:";
        j = 0;
        while ((arr[max_i][j] != 0) && (j < m))
        {
                if (arr[max_i][j] == arr[max_i][max_j])
                {
                        ++counter;
                        cout << " arr[" << max_i << "][" << j << "] ";
                }
                j++;
        }
        
        cout << "\n(there are " << counter << " elements with walue of " << arr[max_i][max_j] << " in this row)\n";
        system("pause");
        return 0;
}
фууф, вот.
ps/ Не работает, если один из элементов будет равен 0
C:\Program Files\Ñ++\MSDev98\MyProjects\adskjda\sadsadwq2.cpp(15) : error C2086: 'i' : redefinition
C:\Program Files\Ñ++\MSDev98\MyProjects\adskjda\sadsadwq2.cpp(17) : error C2086: 'i' : redefinition
C:\Program Files\Ñ++\MSDev98\MyProjects\adskjda\sadsadwq2.cpp(26) : error C2374: 'j' : redefinition; multiple initialization

C:\Program Files\Ñ++\MSDev98\MyProjects\adskjda\sadsadwq2.cpp(24) : see declaration of 'j'
Error executing cl.exe.

sadsadwq2.obj - 3 error(s), 0 warning(s)
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.06.2011, 18:06     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #10
уберите в данных строчках перед i или j int
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
08.06.2011, 19:25  [ТС]     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #11
Цитата Сообщение от soon Посмотреть сообщение
уберите в данных строчках перед i или j int
Огромное спасибо,ещё 1 вещь не подскажешь,как туда ещё припихнуть функцию которая бы выдавала сколько элементов в столбце в котором находится найденный элемент
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.06.2011, 19:39     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #12
C++
1
2
while ((arr[max_i][j] != 0) && (j < m))
     ++j;
вот так наверное

Добавлено через 2 минуты
ой.. это в строке
в столбце так
C++
1
2
3
for (int i = 0; i < n; ++i)
     if (arr[i][max_j] !=0)
          ++count;
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
08.06.2011, 19:50  [ТС]     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #13
Compiling...
dsa2.cpp
C:\Program Files\Ñ++\MSDev98\MyProjects\sxsa\dsa2.cpp(42) : error C2065: 'count' : undeclared identifier
Error executing cl.exe.

dsa2.obj - 1 error(s), 0 warning(s)
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
08.06.2011, 20:27     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #14
Airzi, ну пропишите в начале int count=0;
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.06.2011, 20:28     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #15
Цитата Сообщение от Airzi Посмотреть сообщение
'count' : undeclared identifier
не объявленный оператор
объяви его
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
08.06.2011, 22:24  [ТС]     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #16
блин куда этот код впихнуть?
он у меня постоянно прекращает работу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2011, 06:25     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы.
Еще ссылки по теме:

В каждой строке двумерного массива находится минимальный элемент, затем среди этих чисел находится максимальное. Напечатать индексы этого элемента. C++
Найти макс. элемент среди отрицательных и мин. элемент среди положительных элементов массива C++
В двумерном массиве 4х4. В каждой строке найти количество элементов больше данного числа D C++

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.06.2011, 06:25     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. #17
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream>
using namespace std;
 
int main()
{
        int rows, cols;
        int i, j, n, m;
        int max_i, max_j, min_j; 
        int counter = 0;
        cout << "Enter n\n";
        cin >> n;
        cout << "Enter max length of line\n";
        cin >> m;
        int **arr = new int* [n];
        for (int i = 0; i < n; ++i)
            arr[i] = new int [m];
        for (int i = 0; i < n; ++i)
        {
            int tmp;
            cout << "Enter length of " << i+1 << " line: ";
            cin >> tmp;
            if (tmp > m)
                return 0;
            for (int j = 0; j < tmp; ++j)
                std::cin >> arr[i][j];
            for (int j = tmp; j < m; ++j)
                arr[i][j] = 0;
        }
        cout << "\nSource array:\n";
        for (i = 0; i < n; ++i)
        {
                int j = 0;
                while ((arr[i][j] !=0)&&(j < m))
                {
                        cout << arr[i][j] << '\t';
                        ++j;
                }
                j = 0;
                cout << '\n';
        }
        max_i = 0;
        max_j = 0;
 
        for (i = 0; i < n; ++i)
        {
                min_j = 0;
                j = 0;
                while ((arr[i][j] !=0)&&(j < m))
                {
                        if (arr[i][j] < arr[i][min_j])
                        {
                                min_j = j;
                        }
                        ++j;
                }
 
                if(arr[i][min_j] > arr[max_i][max_j] || i == 0)
                {
                                max_i = i;
                                max_j = min_j;
                }
                        
                cout << "Minimum in " << i << " row is arr" 
                        << "[" << i << "][" << min_j << "] = " 
                        << arr[i][min_j] << '\n';
        }
        
        cout << "Maximal element of minimums is arr[" 
                << max_i << "][" << max_j << "] = " 
                << arr[max_i][max_j] << '\n';
        
        cout << "\nEqual elements:";
        j = 0;
        while ((arr[max_i][j] != 0) && (j < m))
        {
                if (arr[max_i][j] == arr[max_i][max_j])
                {
                        ++counter;
                        cout << " arr[" << max_i << "][" << j << "] ";
                }
                j++;
        }
        int count = 0;
        for (i = 0; i < n; ++i)
            if (arr[i][max_j] !=0)
                 ++count;
        cout << "\n(there are " << counter << " elements with walue of " << arr[max_i][max_j] << " in this row)\n";
        cout << count;
        system("pause");
        return 0;
}
Добавлено через 51 минуту
а прекращать работу может потому, что
C++
1
2
3
cin >> tmp;
            if (tmp > m)
                return 0;
где tmp - длинна выбранной строки. если она будет больше, чем m(а вы вводите m второй строчкой), то программа завершится.
Yandex
Объявления
09.06.2011, 06:25     В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы.
Ответ Создать тему
Опции темы

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