Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Квадрат матрицы


Автор: A1exander 10.6.2007, 22:25
Не могу справиться с задачей, хотя она выглядит лёгкой, помогите пожалуйста  smile  Ещё не разобрался как её делать с применением нескольких функций (кроме main) - это обязательно по условию лабы.
Цитата

Даны две квадратные матрицы 10-го порядка. Напечатать квадрат той из них, в которой наименьший след (сумма диагональных элементов).

Заранее спасибо!  smile 

Автор: Dov 11.6.2007, 04:26
Код

#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h> 
#include <time.h>

#define SIZE 10

void Input(int matr[][SIZE])
{
    int i, j;

    for(i = 0; i < SIZE; i++)
        for(j = 0; j < SIZE; j++)
            matr[i][j] = rand() % 100; 
}
 
void Print(int *ar)  
{
    int i;

    for(i = 0; i < SIZE * SIZE; i++)
    {
        if((i % SIZE) == 0)
            cout << endl;
        cout << setw(4) << ar[i];
    }
    cout << endl;
}

int Sum(int matr[][SIZE])
{
    int i, sum = 0;

    for(i = 0; i < SIZE; i++)
        sum += matr[i][i];

    return sum;
}

int main()
{
    srand((unsigned)time(NULL));

    int matr1[SIZE][SIZE];
    int matr2[SIZE][SIZE];
    int sum1, sum2;

    Input(matr1);
    Input(matr2);

    sum1 = Sum(matr1);
    sum2 = Sum(matr2);

    cout << "Sled matrix #1: " << sum1 << endl;
    cout << "Sled matrix #2: " << sum2 << endl;
    cout << "\nMatrix #" << (sum1 < sum2 ? 1 : 2) << ":\n";
    Print(sum1 < sum2 ? *matr1 : *matr2);
    cout << endl;

    return 0;
}

Автор: A1exander 11.6.2007, 19:31
Dov, респект тебе и нижайший поклон smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)