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

Сфоpмиpовать массив из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки (BorlandC++) - C++

Восстановить пароль Регистрация
 
gorila
0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 37
22.03.2016, 20:31     Сфоpмиpовать массив из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки (BorlandC++) #1
Как сделать задание "Дан массив А pазмеpом m*n. Сфоpмиpовать массив NS из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки. "
У меня есть подобный код :
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
#include<stdio.h>
#include<conio.h>
void main()
{
const N=2,M=3;        /*размерность масcива А*/
static int  A[N][M];
int B[N],C[N];  /*описание масcивов А,В,С*/
int MAX ;    int I,J;
  //ввод элементов массива
  printf("Bведите элементы массива А[%d][%d]\n ",N,M);
  for (I=0;I<N;I++)
   for (J=0;J<M;J++)
    scanf("%d",&A[I][J]);
  // нахождение наибольшего элемента последовательности
  for (I=0;I<N;I++)
    {
   MAX=A[I][0];
     for (J=0;J<M;J++)
  if  (A[I][J]>MAX) MAX=A[I][J];
  if  (MAX%2==0)
      {
       B[I] =MAX;
       C[I]=0;
       }
     else
       {C[I] =MAX;
        B[I]=0;
        }
  }
  printf("\nМассив B\n");
  for (I=0;I<N;I++)
    printf("%-4d",B[I]);
    getch();
  printf("\nМассив С\n");
  for (I=0;I<N;I++)
    printf("%-4d",C[I]);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2016, 20:31     Сфоpмиpовать массив из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки (BorlandC++)
Посмотрите здесь:

Найти минимальные элементы столбцов матрицы C++
C++ составить программу, которая находит максимальные элементы каждой строки двумерной матрицы A, состоящей из m строк и n столбцов
C++ В двумерной матрице найти минимальные элементы каждой строки и переставить на первое место
C++ Если минимальные элементы столбцов находятся на побочной диагонали и образуют неубывающую последовательность, то транспонировать матрицу. В противн
C++ Вывести минимальные элементы каждой диагонали матрицы
Сформировать массив С, в который войдут минимальные элементы каждой строки матрицы C++
Для каждой строки заданной матрицы найти и напечатать номера столбцов, содержащих отрицательные элементы C++
C++ Найти количество столбцов, в которых стоят минимальные элементы массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
meJevin
 Аватар для meJevin
153 / 145 / 56
Регистрация: 18.11.2015
Сообщений: 598
Завершенные тесты: 1
22.03.2016, 23:33     Сфоpмиpовать массив из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки (BorlandC++) #2
Ну смотри, у нас есть матрица, мы ищем в каждой строке минимальный элемент и запоминаем его индекс, так как(индекс) он пойдет в массив NS. Но, я не уверен, индекс ли туда должен идти или порядковый номер, так в условии написано номер, но обычно задачи на индексы задают. А как ты знаешь, индексация начинается с нуля, а счет порядковый с единички, поэтому массив NS, в зависимости от понимания условия, может быть разный. Но я следовал условию и заполнил массив NS ПОРЯДКОВЫМИ НОМЕРАМИ минимальных элементов каждой строки. Вот код:
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
#include <iostream>
#include <iomanip>
#define NOMINMAX
#include <Windows.h>
#include <conio.h>
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    srand(time(NULL));
 
    const int N = 4, M = 6;
    int A[N][M];
    int NS[N];
 
    int indexMinM, min;
 
    std::cout << "Ваш массив A:\n";
    for (int i = 0; i < N; i++) {
        min = std::numeric_limits<int>::max();
        std::cout << "\n| ";
        for (int j = 0; j < M; j++) {
            A[i][j] = rand() % 99;
            if (A[i][j] < min) {
                min = A[i][j];
                indexMinM = j;
            }
            std::cout << std::setw(2) << A[i][j] << " | ";
 
            NS[i] = indexMinM+1;
        }
    }
 
    std::cout << "\n\nВаш массив NS, который содержит порядковые номера\nминмальных элементов каждой строки матрицы А:\n\n| ";
    for (int i = 0; i < N; i++)
        std::cout << NS[i] << " | ";
 
    _getch();
    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
#include <iostream>
#include <iomanip>
#define NOMINMAX
#include <Windows.h>
#include <conio.h>
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    srand(time(NULL));
 
    const int N = 4, M = 6; // размеры матрицы
    int A[N][M];
    int NS[N];
 
    int indexMinM, min; // переменные, которые отвечают за определение мин.
                        // элемента и его запоминание его индекса
 
 
    // сдесь вся каша
    std::cout << "Ваш массив A:\n";
    for (int i = 0; i < N; i++) {
 
        min = std::numeric_limits<int>::max();      // мы не знаем, с каким числом можем встретиться, поэтому я делаю наш мин. элемент максимальным значением int
 
        std::cout << "\n| ";    // для красоты
        for (int j = 0; j < M; j++) {
            A[i][j] = rand() % 99;  // генерируем случайное значение до 99 и кидаем в матрицу 
 
            if (A[i][j] < min) {    // если свеже-сгенерированное число, которое мы только что кинули в матрицу меньше мин.
                min = A[i][j];      // то мин. = этому числу
                indexMinM = j;      // запоминаем индекс
            }
 
            std::cout << std::setw(2) << A[i][j] << " | ";  // для красоты
 
            NS[i] = indexMinM + 1;  //в массив NS кидаем порядковый номер элемента минимального, мы может это сделать, так как мы запомнили индекс (просто прибавим единичку, чтобы это стал порядковый номер)
 
        }
 
    }
 
    // просто вывод массива NS
    std::cout << "\n\nВаш массив NS, который содержит порядковые номера\nминмальных элементов каждой строки матрицы А:\n\n| ";
    for (int i = 0; i < N; i++)
        std::cout << NS[i] << " | ";
 
    _getch();
    return 0;
}
Yandex
Объявления
22.03.2016, 23:33     Сфоpмиpовать массив из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки (BorlandC++)
Ответ Создать тему
Опции темы

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