|
2.5 Кб |
|
| Дано натуральное число n. Сформировать произвольную матрицу размерностью n*n. Найти наибольший и наименьший элемент заштрихованной части.
См. вложенный файл гиф.
В общем то из всего этого не могу выбрать числа из заштрихованной области в temp массив для сортировки. Размер n матрицы может быть как четный, так и нечетный (вбивается в ручную). Знаю что решение элементарное, но ничего в голову не идет - короче опять туплю. Посоветуйте плиз - как выбрать данные из заштрихованной области. | |
|
|
|
|
|
|
|
для: Miha_drinking_bout
(22.11.2010 в 15:26)
| | #include <iostream>
#include <random>
using namespace std;
int main()
{
int n; // размерность исход. массива
cin>>n;
float **a; // исходный массив
float *tmp; // куда будем писать заштрих. область
//инициализация исходного массива
a= new float*[n];
for(int i=0;i<n;i++)
{
a[i]=new float[n];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
a[i][j]=int((float)rand()/(RAND_MAX+1)*20-10);
}
}
//конец
int count=n;
int m=0;
//определение размерности заштрихованного массива n+(n-2)+(n-4)...
do
{
m+=count;
count-=2;
}while(count>0);
tmp=new float[m];
count=0;
int count2=0;
// запись заштрихованной области a[i... n-i][i] в массив tmp
while(count<(n/2+1))
{
for(int j=count;j<(n-count);j++)
{
tmp[count2]=a[j][count];
count2++;
}
count++;
};
//сортировка пузырьком
bool l=true;
while(l)
{
l=false;
for(int i=0;i<m-1;i++)
if(tmp[i]>tmp[i+1])
{
float t=tmp[i];
tmp[i]=tmp[i+1];
tmp[i+1]=t;
l=true;
}
}
//вывод
cout<<"Matrix:"<<endl;
for(int i=0;i<n;i++)
{
cout<<endl;
for(int j=0;j<n;j++)
{
cout<<a[i][j]<<" ";
}
}
cout<<endl<<endl<<"SHTRIH_MATRIX:"<<endl;
for(int i=0;i<m;i++)
cout<<tmp[i]<<" ";
cout<<endl<<"min = "<<tmp[0]<<" "<<"max = "<<tmp[m-1];
return 1;
}
компилятор Visual Studio | |
|
|
|
|
|
|
|
для: Vorox
(25.11.2010 в 15:33)
| | Спасибо огромное. Только ввел меня в заблуждение немного #include <random> - как понял имелась в виду библиотека описывающая ф-цию rand заменил на #include <stdlib.h>. Компилил GCC (в CL тоже компилится). Ура работает!!! Еще раз спасибо. | |
|
|
|
|
|
|
|
для: Miha_drinking_bout
(26.11.2010 в 16:41)
| | обращайся :) | |
|
|
|