Potrebna pomoc oko ispravke jednod koda u C-u

Potrebna pomoc oko ispravke jednod koda u C-u

offline
  • Pridružio: 20 Jan 2009
  • Poruke: 3

Bila bih veoma zahvalna svakom ko bi mi dao ideju kako da resim sledeci problem,tj. da prepravim sledeci kod.
E sad da objasnim sta je u pitanju...
U pitanju je program koji radi operacije sa matricama,koje su predstavljene ovako

a11 -> a12 -> a13 -> ... -> a1n
|
a21 -> a22 -> a23 -> ... -> a2n
|
.
.
|
am1-> am2->am3-> ... -> amn

znaci matrice se tako ucitavaju uz pomoc f-je:

#include<alloc> #include<stdio> #include<conio> #include<dos> #include<stdlib> #include<string> #include<bios> #define BR_OPERACIJA 6 #define MAX_OPIS   100 static char Opis[BR_OPERACIJA][MAX_OPIS]={     "Sabiranje matrica",     "Oduzimanje matrica",     "Mnozenje matrica",     "Mnozenje matrice brojem",     "Trag matrice",     "Transponovana matrica",};     typedef struct cvor { float vrednost; struct cvor *levo; struct cvor *desno;   } Cvor; Cvor *upis(Cvor *koren) {    int n,m,i,j;    float k;    Cvor *novi,*p,*q,*r;    printf("  Broj vrsta matrice   ");    scanf("%d",&n);    printf("  Broj kolona matrice  ");    scanf("%d",&m);    printf("\n");    koren=NULL;    printf("  Elementi matrice\n\n");                for(i=1;i<=n;i++)  {                        for(j=1;j<m>vrednost=k;                                                             novi->desno=NULL;                                                             novi->levo=NULL;                                                       if(i==1&&j==1){  koren=novi;                   p=q=r=koren;                          }                                                             if(i==1&&j==1)continue;                                                                                          if((j!=1)&&(i==1)){                      p->desno=novi;                      p=p->desno;                                                                 }                                                                                 if((j==1)&&(i>1)){                         r->levo=novi;                         q=r->desno;                         r=r->levo;                         p=r;                                            }                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if((j!=1)&&(i>1))  {                   q->levo=novi;                   q=q->desno;                   p->desno=novi;                   p=p->desno;                                                           }                                                                                                                                                                                                    }               }                  return koren; }[/url]

Ali,problem je u tome sto mi je potrebno da matricu ucitam tako da izgleda (kao mreza pointera) tj. da svaki element matrice pokazuje na naredni u vrsti u kojoj se nalazi,i na naredni u koloni kojoj se nalazi.(tj. svaki el. ima pokazivac na desno i na dole )

Bila bih veoma zahvalna na svakoj ideji



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 25 Jul 2008
  • Poruke: 142

nisam ni tebe ni kod bas razumeo Neutral

Ali ako je samo ovo:
Citat:da svaki element matrice pokazuje na naredni u vrsti u kojoj se nalazi,i na naredni u koloni kojoj se nalazi.(tj. svaki el. ima pokazivac na desno i na dole )

Evo ti koda, pa ti od ovog pravi funkcije ili sta vec hoces:
#include<stdio.h> #include<stdlib.h> typedef struct element {    float vrednost;    struct element *desno;    struct element *dole; }Element; void main() {    int n,m,i,j;    Element **matrica;    printf("  Broj vrsta matrice   ");    scanf("%d",&n);    printf("  Broj kolona matrice  ");    scanf("%d",&m);    printf("\n");    matrica=malloc(n*sizeof(Element));    for (i=0;i<m; i++)        matrica[i]=malloc(m*sizeof(Element));    printf("\nUnesite elemente matrice:\n");    for(i=0;i<n;i++)       for(j=0;j<m;j++)          scanf("%f",&matrica[i][j].vrednost);    //dodavanje da svaki element pokazuje na donji i na sledeci    //proveri jos malo da li je dobro jer nisam nesto posebno testirao ali to je to odprilike.    for(i=0;i<n;i++)       for(j=0;j<m;j++)       {           if(i!=m-1)             matrica[i][j].desno=&matrica[i][j+1];           if(j!=j-1)             matrica[i][j].dole=&matrica[i+1][j];       }    for(i=0;i<n;i++)    {       for(j=0;j<m;j++)          printf("%f ",matrica[i][j].vrednost);       printf("\n");    }        //Prikazivanje poslednjih elemenata koji imaju desni tj donji element    printf("\n\n%f\n%f",matrica[n-1][m-2].desno->vrednost,matrica[n-2][m-1].dole->vrednost); //jos malo ispravi da oni koji nemaju donji i desni element sigurno pokazuju na null. //Formatiraj izlaz gde je float //dodaj proveru dinamicke dodele memorije i sl. }

Pozdrav Wink



offline
  • Pridružio: 20 Jan 2009
  • Poruke: 3

hvala ti puno,provericu kako radi....pa ti javljam reezultate...
hvala najlepse

Ko je trenutno na forumu
 

Ukupno su 903 korisnika na forumu :: 29 registrovanih, 7 sakrivenih i 867 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, 8u47, A.R.Chafee.Jr., airsuba, Aleksandar Tomić, Arahne, bigfoot, cincarin, dane007, dekan.m, Denaya, Dorcolac, draganl, Dukelander, esx66, Georgius, goxin, JOntra, Mixelotti, mkukoleca, nemkea71, NoOneEver Dreams, samsung, stalja, Sumadija34, Tvrtko I, Vatreni Zmaj, Vlada1389, VP6919