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

Найти минимальный элемент среди лежащих выше главной диагонали - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как из файла считать данный, и как эти n чисел запихнуть в массив http://www.cyberforum.ru/cpp-beginners/thread724988.html
Дано n (n<=32000) натуральных чисел xi, (xi<m). Необходимо установить, можно ли разбить их на пары таким образом, чтобы сумма чисел в каждой паре не превышала m (m<=100). Файл input.txt организован следующим образом: в первой строке через пробел записаны число n, затем m, далее следуют n строк, по одному числу в каждой. В файл output.txt необходимо вывести «YES», если данный набор можно...
C++ DES. Мусор при расшифровке При расшифровке появляются лишние символы. Знаю, с чем это связано. Не знаю, как избавиться. http://www.cyberforum.ru/cpp-beginners/thread724972.html
C++ Ввести две строки текста, изъять из длинного строки все вхождения короткого строки. Вывести новую строку на экран. исправить код
Ввести две строки текста, изъять из длинного строки все вхождения короткого строки. Вывести новую строку на экран. #include <string> #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; void main() {
C++ Найти наименьший положительный элемент массива
Задав одномерный массив целочисленных данных А в одном из заданных форматов, реализовать обработку массива, как указано в варианте. Длина статического массива N<=20. Значение N ввести с клавиатуры с проверкой на допустимые значения. Предусмотреть возможность ввода значений элементов массива пользователем и с помощью датчика случайных чисел. В программе должны быть предусмотрены функции...
C++ Работа с памятью http://www.cyberforum.ru/cpp-beginners/thread724896.html
Может кто хорошо понимает механизм выделения и освобождения памяти объяснить его, а то я в конец запутался с ним, вот помогал одному форумчанину и оказалось , что сам не понимаю как работает, задача была добавление в конец массива эллемента, реализована была вот так void add(int**P,int &N,int x) { N++; int *temp=new int; for (int i = 0; i < N-1; i++) { temp=(*P); ...
C++ Преобразование матриц (указатели) Построить матрицу B по заданной целочисленной матрице А порядка n (n <= 100). Решить задачу с использованием указателей. Построить матрицу В такого же размера, как А, элементы которой обладают следующим свойством: элемент В равен минимальному из элементов матрицы А, расположенных ниже диагонали, параллельной главной, пересекающей этот элемент, включая саму диагональ. подробнее

Показать сообщение отдельно
trasheR
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 12
09.12.2012, 21:13     Найти минимальный элемент среди лежащих выше главной диагонали
В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти минимальный элемент среди лежащих выше главной диагонали.
Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных.


Вот пример выполнения задания из методички:
В целочисленном двухмерном динамическом массиве (матрице) размером NМ найти сумму четных элементов и их количество. Ввод исходных данных (размеры массива и его элементы) и вывод результатов выполнить в основной функции. Решение поставленной задачи оформить в фунции пользователя.
Текст программы может иметь следующий вид:

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
#include <iostream.h>
#include <conio.h>
 
int Fun_Sum_Kol(int, int, int**, int*);     // Описание прототипа функции
 
void main()
{
        int **a, i, j, n, m, sum, kol;
cout << "\t Input N, M : ";
cin >> n >> m;
a = new int*[n];                    // Захват памяти под указатели
for(i=0; i<n;i++)
                a[i] = new int[m];      // Захват памяти под элементы
cout <<"\n Input A" << endl;
for(i=0; i<n; i++)
                for(j=0; j<m; j++){
                        cout << "\t a[" << i+1 << "][" << j+1 << "] = ";
                        cin >> a[i][j];
                }
cout <<"\n Matrix A:" << endl;
for(i=0; i<n; i++) {
                for(j=0; j<m; j++)
                        cout << "\t" << a[i][j];
                cout << endl;
}
 
// Обращение к функции с указанием фактических аргументов
sum = Fun_Sum_Kol(n, m, a, &kol);       
cout << "\n Kol-vo = " << kol << "\t Summa = " << sum << endl;
        delete []a;                         // Освобождение памяти          
cout << "\n\t Delete !" << endl;
cout << " Press any key ... " << endl;
getch();
}
 
/* Реализация описанной выше функции, в заголовке которой указаны формальные параметры, идентификаторы которых обрабатываются в ее коде */
int Fun_Sum_Kol(int a, int b, int **x, int *k)
{
int i, j, s = 0;
*k = 0;
for(i=0; i<a;i++)
         for(j=0; j<b;j++)
                  if(x[i][j] % 2 ==0){
                                (*k)++;          // Скобки обязательны
                                s += x[i][j];
                  }
return s;
}
При вводе значений элементов массивов в одной строке через пробелы должен получиться следующий результат:
http://cs307300.userapi.com/v3073003...QY-7VmxznU.jpg

Помимо этого нашел также выполнение своего задания, только размер массива и числа не задаются, а берутся рандомно:

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 <iostream>
#include <iomanip>
#include <ctime>
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int row,column;
std::cout << "Введите кол-во строк в массиве: ";
std::cin >> row;
std::cout << "Введите кол-во столбцов в массиве: ";
std::cin >> column;
    int **MAS = new int *[row]; // выделяем память динамически.
    for (int i = 0; i < row; i++)
    MAS[i] = new int [column];
srand(time(NULL));
std::cout << "Первоначальный массив: " << std::endl;
    for (int i=0; i<row; i++) // заполняем массив случайными числами,
    {                           // и выводим на экран.
        for (int j=0; j<column; j++)
        {
            MAS[i][j]=rand() % 20;
            std::cout << std::setw(3) << MAS[i][j];
        }
        std::cout << std::endl;
    }
 
    int min=MAS[0][1]; // присваиваем значение одной из ячеек, выше главной диагонали.
    for (int i=0; i<row; i++) // ищем наименьший элемент.
        for (int j=0; j<column; j++)
            if ((j>i) && (MAS[i][j]<min)) min=MAS[i][j];
 
std::cout << "Наименьший элемент, лежащий выше главной диагонали: " << min;
std::cout << std::endl;
    for (int i = 0; i < row; i++)
    delete []MAS[i];
    delete []MAS;
    system("pause");
    return 0;
}
Может это можно как то преобразовать чтобы размер и числа вводились мной.
Помогите вобщем кто может, буду весьма признателен

Добавлено через 3 часа 58 минут
ребята, ай нид хэлп)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru