Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

reshenie_zadachi_1

Решение задачи 1

  • Задача 1. Дана квадратная матрица порядка n (n строк, n столбцов). Найти наибольшее из значений элементов, расположенных в тёмно-синих частях матриц. Все массивы в данном задании заполняются случайным образом.

  • Решение: Логика: если i - индекс строки, а j - индекс столбца то массива
  • а. выбираем элементы у которых i⇐j
  • б. выбираем элементы у которых i>=j
  • в. если i⇐(высота/2) то если j⇐(ширина/2) то выбираем элементы у которых i⇐j если j>(ширина/2) то выбираем элементы у которых i⇐(ширина - j)
/* 
 * File:   main.cpp
 * Author: darkfire
 *
 * Created on 5 Июль 2010 г., 9:58
 */

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

/*
Решение для картинки а
 */

using std::endl;
using std::cout;


int main() {

    int max,i,j;
    const int row=5;
    const int col=5;
    int mr[row][col];

    for(int i=0; i<row; i++) // перебираем отдельные элементы каждой строки
	for(int j=0; j<col;j++) mr[i][j]=rand()%200; // инициализация элементов значениями в диапазоне от 0 до 5

//вывод матрицы на экран
 for(i=0; i<row; i++)
 {
     for(j=0; j<col;j++) cout<<mr[i][j]<<"\t";
     cout<<"\n";
 }

 //находим элемент принадлежащий закрашенной области, 
 //для инициализации переменной мах
for(i=0; i<row; i++)
    for(j=0; j<col;j++)
        if (i<j){
            max=mr[i][j];
            break;
        };

//Найти наибольшее из значений элементов, расположенных в тёмно-синих частях матриц.
 for(i=0; i<row; i++)
    for(j=0; j<col;j++)
        if (i<j&&max<mr[i][j]){
            max=mr[i][j];
            
        };

cout<<"\n";
cout<<"MAX = "<<max<<"\n";

    return (EXIT_SUCCESS);
}



reshenie_zadachi_1.txt · Последние изменения: 2010/07/07 09:26 (внешнее изменение)