Forum » Programiranje » rotiranje dvodimenzionalnih matrik
rotiranje dvodimenzionalnih matrik
freserovski ::
Oj, imam en problem, kako to naredit, nekaj sem ustvarjal, ampak ne deluje najboljše, rotirat mora samo zunanje ploskve matrike :
1234
5678
9876
2348
1676
5987
tako bi naj deloval program, naredil sem tako, vendar mi stavki za premik stolpca na levi in spodnje vrstice odrežeta zadnje cifre , stavka za zgornjo vrstico in desni stolpec pa delata pravilno...
void rotiranje_robnih_el(int polje[vel][vel][vel])
{
int temp,temp1,temp2,temp3;
for (int i=0; i < glo; i + + ){
for (int j=0; j < vis; j + + ){
for (int k=0; k < sir; k + + ){
if (j==0){//obraca zgornjo vrstico
temp2=polje[i][j][k];
polje[i][j][k]=polje[i][j][k+1];
polje[i][j][k+1]=temp2;}
if(k==0){//obraca levi stolpec
temp=polje[i][vis-j-1][k];
polje[i][vis-j-1][k]=polje[i][vis-j-2][k];
polje[i][vis-j-2][k]=temp;}
if(j==vis-1){//obraca spodnjo vrstico
temp1=polje[i][j][sir-k-1];
polje[i][j][sir-k-1]=polje[i][j][sir-k-2];
polje[i][j][sir-k-2]=temp1;}
if(k==sir-1){//obraca desni stolpec
temp3=polje[i][j][k];
polje[i][j][k]=polje[i][j+1][k];
polje[i][j+1][k]=temp3;}
1234
5678
9876
2348
1676
5987
tako bi naj deloval program, naredil sem tako, vendar mi stavki za premik stolpca na levi in spodnje vrstice odrežeta zadnje cifre , stavka za zgornjo vrstico in desni stolpec pa delata pravilno...
void rotiranje_robnih_el(int polje[vel][vel][vel])
{
int temp,temp1,temp2,temp3;
for (int i=0; i < glo; i + + ){
for (int j=0; j < vis; j + + ){
for (int k=0; k < sir; k + + ){
if (j==0){//obraca zgornjo vrstico
temp2=polje[i][j][k];
polje[i][j][k]=polje[i][j][k+1];
polje[i][j][k+1]=temp2;}
if(k==0){//obraca levi stolpec
temp=polje[i][vis-j-1][k];
polje[i][vis-j-1][k]=polje[i][vis-j-2][k];
polje[i][vis-j-2][k]=temp;}
if(j==vis-1){//obraca spodnjo vrstico
temp1=polje[i][j][sir-k-1];
polje[i][j][sir-k-1]=polje[i][j][sir-k-2];
polje[i][j][sir-k-2]=temp1;}
if(k==sir-1){//obraca desni stolpec
temp3=polje[i][j][k];
polje[i][j][k]=polje[i][j+1][k];
polje[i][j+1][k]=temp3;}
Problemi so, problemi bodo! Kurc jih gleda!!
- spremenilo: freserovski ()
Seadoo ::
A to rabiš za matriko poljubne velikosti al točno 3x4? Pa tista tvoja koda je res ful pregledna... dej raje tri normalne for stavke.
freserovski ::
za poljubno rabim , sment, koda se pa sploh ne vidi cela, a obstaja kak html ukaz, da bi lahko normalno kodo vstavo sem?
Problemi so, problemi bodo! Kurc jih gleda!!
Seadoo ::
Če hočeš vstavit kodo, uporabi PRE ukaz.
Glede kode pa: ne razumem zakaj ti to teče po treh spremenljivkah? Matrika je dvodimenzinalna, zakaj rabiš še tretjo dimenzijo?
Če pa že praviš da ti odreže samo zadnje elemente, probaj spremenit robne pogoje zank...
Glede kode pa: ne razumem zakaj ti to teče po treh spremenljivkah? Matrika je dvodimenzinalna, zakaj rabiš še tretjo dimenzijo?
Če pa že praviš da ti odreže samo zadnje elemente, probaj spremenit robne pogoje zank...
Zgodovina sprememb…
- spremenilo: Seadoo ()
d-mon ::
Vse matrike v Cju se pisejo kot enodimenzionalna tabela.
Recimo matrika 4x4 je matrix[16], kjer potem v for zanki naredis tako, da je multiplikator od 4 vedno prvi stolpec, i+1 drugi....
Tako si celotno kodo pohitris in seveda poenostavis.
Se pravi pri tvojem primeru bi moral pozicijo iz mesta i premakniti na mesto i+4, kjer je i multiplikator 4, za vse ostale pa na mesto i-1.
Recimo matrika 4x4 je matrix[16], kjer potem v for zanki naredis tako, da je multiplikator od 4 vedno prvi stolpec, i+1 drugi....
Tako si celotno kodo pohitris in seveda poenostavis.
Se pravi pri tvojem primeru bi moral pozicijo iz mesta i premakniti na mesto i+4, kjer je i multiplikator 4, za vse ostale pa na mesto i-1.
[D-mon]
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Spreminjanje vrednosti v polju [C]Oddelek: Programiranje | 2173 (1972) | specing |
» | križci krožci c # (strani: 1 2 )Oddelek: Programiranje | 11907 (10566) | Yacked2 |
» | Kruskalov algoritem težave pri implementacijiOddelek: Programiranje | 1616 (1390) | zacetnik11 |
» | Programski jezik C- pomočOddelek: Programiranje | 1699 (1617) | alexa-lol |
» | Bubble sortOddelek: Programiranje | 1540 (1432) | OwcA |