Artem-Samsung |
21-05-2009 23:23 1124510 |
Лабораторная. Работа с массивами
У друга задачка, обратился ко мне, больше не к кому, а я С++ не знаю,
но всегда знаю, где спросить :)
Так вот, друзья. Нужно порешать такую задачю:
Цитата:
Заполнить матрицу случайными числами. Отобразить симметрично относительно горизонтальной оси секторы матрицы, которые лежат выше и ниже главной и побочной диагоналей.
|
Кто чем может. Будем благодарны
|
Цитата:
Цитата Artem-Samsung
Заполнить матрицу случайными числами »
|
Сделай поиск - примеров на форуме масса.
Цитата:
Цитата Artem-Samsung
Отобразить симметрично относительно горизонтальной оси секторы матрицы, которые лежат выше и ниже главной и побочной диагоналей. »
|
то есть транспонировать? Напиши формулу, что имеется ввиду
|
pva если я правильно понял Artem-Samsung'а то вывести нужно
точно осталось белым, а в результате должно получится что-то типа этого
элементы отмеченные зелённым будут ответом.
|
Artem-Samsung |
23-05-2009 13:35 1125644 |
Admiral, друг подтвердил, именно так.
|
Artem-Samsung, если друг использует Borland (Turbo) C++ 3.0, тогда вот исходник к программе, скрин выполнения которой приведён выше.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
clrscr();
const p=71;
int micro[p];
int b=0;
const n=11;
const m=n;
int mas[n][m],i,j;
randomize();
for(i=0;i<n;i++)
for(j=0;j<m;j++)
mas[i][j]=random(10)+10;
textcolor(2); int key=0;
printf("---------------------------------The massive is---------------------------------\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{ if (0<=j&&j<n&&i==n-11)
{key=1; goto Oper;}
if (0<j&&j<n-1&&i==n-10)
{key=1; goto Oper;}
if (1<j&&j<n-2&&i==n-9)
{key=1; goto Oper;}
if (2<j&&j<n-3&&i==n-8)
{key=1; goto Oper;}
if (3<j&&j<n-4&&i==n-7)
{key=1; goto Oper;}
if (4<j&&j<n-5&&i==n-6)
{key=1; goto Oper;}
if (3<j&&j<n-4&&i==n-5)
{key=1; goto Oper;}
if (2<j&&j<n-3&&i==n-4)
{key=1; goto Oper;}
if (1<j&&j<n-2&&i==n-3)
{key=1; goto Oper;}
if (0<j&&j<n-1&&i==n-2)
{key=1; goto Oper;}
if (0<=j&&j<n&&i==n-1)
{key=1; goto Oper;}
World: cprintf(" %i ",mas[i][j]);
textcolor(2);
}
printf("\n");
}
printf("-------------------------------------------------------------------------------\n");
Oper:if (key==1)
{ micro[b]=mas[i][j];
b++;
textcolor(4);
key=0;
goto World;
}
int buf[p],k=0;
for (b=0;b<p;b++)
{textcolor(4);
cprintf(" %i ",micro[b]);
if (fmod(micro[b],2)==0)
{buf[k]=micro[b];k++;}
}
printf("\n\n %i of ",k);
cprintf("red");
printf(" elements are even \n\n");
for (b=0;b<k;b++)
{textcolor(6);
cprintf(" %i ",buf[b]);
}
int tmp;
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
if (buf[i]>buf[j])
{
tmp=buf[i];
buf[i]=buf[j];
buf[j]=tmp;
}
printf("\n\n Assort massive \n\n");
for (b=0;b<k;b++)
{textcolor(1);
cprintf(" %i ",buf[b]);
}
return 0;
}
Помимо поставленной задачи выводит ещё какой-то массив, но это уже пускай он сам разбирается, как и пишет отчёт по проге, коза теперь есть. :)
|
Artem-Samsung |
24-05-2009 13:14 1126227 |
Admiral,
спасибо!
|
Artem-Samsung |
01-06-2009 21:30 1132563 |
Можно еще чуток побеспокоить?
Нужна матрица 9 на 9, и что бы не просто цвет подсвечивался, а симетрично цифры проставлялись.
Цитата:
симметрично относительно горизонтальной оси секторы матрицы, которые лежат выше и ниже главной и побочной диагоналей.
|
Спасибо
http://dc133.file.qip.ru/img/9003427...23.gif?sizeM=3
|
Время: 05:18.
© OSzone.net 2001-