Помогите исправить двумерные массивы

Тема в разделе "C/C++/C#", создана пользователем Rpp, 7 июн 2015.

  1. Rpp

    Rpp New Member

    Репутация:
    0
    Регистрация:
    7 июн 2015
    Сообщения:
    1
    Симпатии:
    0
    Помогите плиз ее исправить!
    Дана целочисленная квадратная матрица. Определить :
    1 сумму элементов в тех столбцах , которые не содержат отрицательных элементов;
    2 минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
    Код (C++):
    #include <iostream>
     
    using namespace std;
     
    void main()
     
    {
     
    setlocale(LC_ALL, ".1251");
     
    int a[100][100], b[100], k;
     
    cout << "Введите размерность квадратной матрицы= ";
     
    cin >> k;
     
    for (int i = 0; i < k; i++)
     
    {
     
    for (int j = 0; j < k; j++)
     
    {
     
    a[j] = rand() % 19 - 9;
     
    }
     
    }
     
    //Вывод
     
    for (int i = 0; i < k; i++)
     
    {
     
    cout << "\n";
     
    for (int j = 0; j < k; j++)
     
    {
     
    cout << a[j] << " ";
     
    }
     
    }
     
    //Сумму элементов в тех строках, которые не содержат отрицательных элементов
     
    cout << "\n";
     
    int sum;
     
    for (int i = 0; i < k; i++)
     
    {
     
    sum = 0;
     
    for (int j = 0; j < k; j++)
     
    {
     
    if (a[j]>0)
     
    {
     
    sum = sum + a[j];
     
    }
     
    else {
     
    break;
     
    }
     
    }
     
    cout << "\nСумма элементов в строке " << i + 1 << "= " << sum;
     
    }
     
    //Минимум среди сумм модулей элементов диагоналей, паралельных побочной диагонали матрицы.
     
    cout << "\n";
     
    for (int i = 0; i < k; ++i)
     
    {
     
    int index = i;
     
    sum = 0;
     
    for (int j = k-1; j > -1; --j)
     
    {
     
    cout << "Элемент[" << index+1 << "][" << j+1 << "]";
     
    sum += a[index++][j];
     
    if (index == k)
     
    index = 0;
     
    if (j != 0)
     
    cout << " + ";
     
    }
     
    b = abs(sum);
     
    cout << " = " << sum << "\n";
     
    }
     
    int min = b[0];
     
    sum = 0;
     
    for (int i = 1; i < k; ++i)
     
    {
     
    if (min > b)
     
    {
     
    min = b;
     
    sum = b;
     
    }
     
    else
     
    {
     
    sum = min;
     
    }
     
    }
     
    cout << "\n";
     
    cout << "Диагональ имеет min по модулю сумму=" << sum << endl;
     
    cout << "\n";
     
    system("PAUSE");
     
    }
     
    #1 Rpp, 7 июн 2015
    Последнее редактирование модератором: 10 июн 2015
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    Она работает неправильно? - какой из пунктов? - на каких примерах вы это установили?
     
Загрузка...
Похожие Темы - Помогите исправить двумерные
  1. victory
    Ответов:
    0
    Просмотров:
    1.051
  2. victory
    Ответов:
    0
    Просмотров:
    871
  3. victory
    Ответов:
    3
    Просмотров:
    1.483
  4. victory
    Ответов:
    3
    Просмотров:
    1.125
  5. Nintendo1994
    Ответов:
    1
    Просмотров:
    896

Поделиться этой страницей