[ milkinizz @ 28.05.2009. 20:16 ] @
Ljudi,treba mi objasnjenje, ako neko moze da mi pomogne. Naime, radila sam neki problem sa matricama i delovalo mi da je O.C. i prosao je kompajler ali kada ga pokrenem on iznova trazi unos. Kako da prekinem unos? Da li treba nesto da unesem pre daljeg rada sa matricom (u mom slucaju mnozenja) ili nesto fali ovom kodu?
Hvala unapred

Code:

/* UPIS  red za redom dajemo clanove. */
void upis(matrica a,int *vrsta,int *kolona)
{ int i,j;float x;
   printf("\nDaj broj vrsta i kolona  ");
   scanf("%d%d",vrsta,kolona);
   printf("A sada upisujemo  \n");
   for (i=1;i<=*vrsta;i++)
    for (j=1;j<=*kolona;j++)
     { printf("Daj  %d  %d-clan :  ",i,j);
      scanf("%f",&x);a[i][j]=x; }
      printf("\n");
}
[ enaB @ 29.05.2009. 07:16 ] @
Kako misliš iznova traži unos, pa i treba iznova da traži unos? Ne razumem.
[ milkinizz @ 30.05.2009. 17:35 ] @
U stvari kada unesem recimo matricu 4X4 on mi opet krazi broj vrsta i kolona za novu matricu i ne mogu da izadjem iz editora za unos. Evo i celog mog resenja:
Code:

/*   cprim22.c   Mnozenje matrica,prethodno je pomocu typedef
        uveden tip dvoniz,tj. matrica.Date su i procedure
        upisa i ispisa.   */
/* INCLUDE fajle  */
#include <stdio.h>

/* UVEDENI TIPOVI */
typedef float dvoniz[10][10];

/* NAJAVE FUNKCIJA  */
void upis(dvoniz a,int *vrsta,int *stub);
void ispis(dvoniz a,int vrsta,int stub);
void pomnozi(dvoniz a,dvoniz b,dvoniz c,int vrsta1,int stub1,int stub2);

void main()
{ int vrsta1,stub1,vrsta2,stub2;
  dvoniz a,b,c;
  upis(a,&vrsta1,&stub1);
  upis(b,&vrsta2,&stub2);
  if (stub1!=vrsta2) printf("Nemoguc slucaj  ");
     else
    {
     pomnozi(a,b,c,vrsta1,stub1,stub2);
     ispis(c,vrsta1,stub2);
    }
}

/* UPIS  red za redom dajemo clanove. */
void upis(dvoniz a,int *vrsta,int *stub)
{ int i,j;float x;
   printf("\nDaj broj vrsta i stubaca  ");
   scanf("%d%d",vrsta,stub);
   printf("A sada upisujemo  \n");
   for (i=1;i<=*vrsta;i++)
    for (j=1;j<=*stub;j++)
     { printf("Daj  %d  %d-clan :  ",i,j);
      scanf("%f",&x);a[i][j]=x; }
      printf("\n");
}

/* ISPIS */
void ispis(dvoniz a,int vrsta,int stub)
{ int i,j;
   printf("To je matrica \n");
   for (i=1;i<=vrsta;i++)
    {printf("\n");
     for (j=1;j<=stub;j++)
      printf("  %f ",a[i][j]);}
   printf("\n");
}

/* POMNOZI  */
void pomnozi(dvoniz a,dvoniz b,dvoniz rez,
       int vrsta1,int stub1,int stub2)
{int i,j,k;
   for (i=1;i<=vrsta1;i++)
     for (j=1;j<=stub2;j++)
       {rez[i][j]=0;
    for(k=1;k<=stub1;k++)
    rez[i][j]=rez[i][j]+a[i][k]*b[k][j];}
 }

Unapred hvala
[ enaB @ 30.05.2009. 17:42 ] @
Kod mene radi normalno. Traži unos za prvu maticu, onda za drugu i dobiješ rezultat