[ mimi034 @ 02.03.2009. 15:51 ] @
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:
Code:
#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;
}


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
[ Eurora3D Team @ 03.03.2009. 03:30 ] @
Ovako trebas da uradis.
Imas komentare u mom kodu ...
Code:


#include <stdio.h>
/*
#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*desno;
    struct cvor*dole;
}
Cvor;

Cvor* upis()
{
    int n=0,m=0,i,j;
    printf("Kolona matrice: ");scanf("%d",&n);
    printf("Vrsta matrice: ");scanf("%d",&m);
    printf("\n");
    Cvor* koren,* novi;
    Cvor* matrix[n][m]; // matrica pointera potrebne velicine
    printf("  Elementi matrice su: \n\n");
    
    for( i = 0 ; i < n ; i++)
    {
        for(j = 0; j < m; j++)
        {
            novi = (Cvor*)malloc(sizeof(Cvor)); // alociramo memoriju za element
            if(!novi) // ako nije alocirana memorija za elemente moramo da prekinemo
                return (Cvor*)0; // i vracamo null pointer kao znak za gresku
                
            novi->desno = 0; // ako je ovo zadnji element desno ili dole
            novi->dole = 0;  // ostace nula
            
            printf("Unesite element: [%d][%d] ",i,j);
            scanf("%f",&novi->vrednost); // upisujemo vrednost
            
            matrix[i][j] = novi; //pamtimo pointer
            
            if(i == 0 && j == 0) // koren je element [0][0]
                koren = novi;  // trenutni element je koren matrice
                
            if(i > 0)
                matrix[i-1][j]->dole = novi; // gornjem elementu (u odnosu na trenutni) upisujemo ovaj element kao donji
            if(j > 0)
                matrix[i][j-1]->desno = novi; // levom elementu (u odnosu na trenutni) upisujemo ovaj element kao desni
        }
    }
    
    return koren;
}

int main()
{
    int x,y;
    
    Cvor* trenutniH=0,*trenutniW = 0;
    Cvor* c = upis(); // upis
    
    if(c == 0) // ako je nula ...
        return 1;
        
    //ispis
    printf("\n");
    printf("Ispis matrice\n");
    //prolazimo kroz matricu citajuci pointere ...
    x=0;
    trenutniW=c;
    while(trenutniW!=0)
    {
        y=0;
        trenutniH=trenutniW;
        while (trenutniH!=0)
        {
            printf("Element [%d][%d] je %f\n",x,y,trenutniH->vrednost);
            trenutniH=trenutniH->desno;
            y++;
        }
        trenutniW=trenutniW->dole;
        x++;
    }
    printf("\n");
    
    system("pause");
    return 0;
}
[ mimi034 @ 13.03.2009. 20:53 ] @
najlepse ti hvala na pomoci...razumem tvoj kod...samo...stalno mi prijavljuje gresku... inace,radim u TC-u
[ Eurora3D Team @ 18.03.2009. 11:10 ] @
Nisam video pitanje ...
Gde prijavljuje gresku? Inace primecujes da sam zaklonio neke header hajlove pa vidi dali kod tebe treba nesto od toga ...