Форум: Форум C++Разное
Новые темы: 00
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Двумерные массивы. Количество отрицательных элементов. Седловые точки.
 
 автор: Recklessly   (17.06.2014 в 21:51)   письмо автору
 
 

Задание такое:
Дана целочисленная прямоугольная матрица. Определить:
1.количество отрицательных элементов в тех строках, которые содержат хотя бы один нулевой элемент
2.номера строки и столбцов всех седловых точек матрицы.
Примечание. Матрица A имеет седловую точку Aij, если Aij является минимальным элементом в i-й строке и максимальным в j-м столбце.
Код ужасный и абсолютно не работоспособный
(

#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std;
 
int count(int **a, const int n, const int m);
int sed(int **a, const int n, const int m);
 
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(0));
    const int n = 6, m = 5;
    int **a = new int*[n];
    for (int i = 0; i < n; i++)
        a[i] = new int[n];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            a[i][j] = rand() % 20 - 10;
            cout << setw(5) << "Массив: " << a[i][j] << endl;
        }
        cout << endl;
    }
    if (!cin.fail()){
        cout << "Количество отрицательных элементов в тех строках, которые содержат хотя бы один нулевой элемент: " << count(**a, n, m) << endl;
        cout << "Номера строки и столбцов седловых точек матрицы: " << sed(**a, n, m);
    }
    else
        cout << "Ошибка ввода!" << endl;
    system("pause");
    return 0;
}
 
int count(int **a, const int n, const int m)
{
    int s = 0;
    for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
        {
        if (a[i][j] == 0)
        {
            for (int i = 0; i < n; i++)
            for (int j = 0; j < m; j++)
            {
                if (a[i][j] < 0)
                    s++;
            }
        }
    }
    return s;
}
 
int sed(int **a, const int n, const int m)
{
    int s;
    int min = 0;
    int max = 0;
    for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
    {
        if (a[i][j] < min)
        {
            min = a[i][j];
            for (int j = 0; j < n; j++)
            for (int i = 0; i < m; i++)
            {
                if (a[j][i] > max)
                {
                    max = a[j][i];
                    if (min = max)
                        s = min;
                }
            }
        }
    }
    return s;
}

Помогите пожалуйста!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования