[ genije mladji @ 16.10.2007. 19:32 ] @
Radi se o sledecem programu: zadate su kvadratne celobrojne matrice Ai B dimenzija nxn i n<8. Napisati C program koji racuna matricu C po formuli:



pri cemu je amin najmanji element matrice A, a bmin najmanji elemnet matrice B. Za sabiranje i mnozenje matrice koristiti funkcije:
int zbir(int matrica[][],int matrica[][],int matrica[][]) i
int mnozenje (int matrica[][],int matrica[][],int matrica[][]).
Za trazenje najmanjeg elementa matrice koristiti funkciju int minimum(int matrica[],int n).

Pa zatim sledi resenje koje nije tacno, tj nesto ne valja.

Code:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

#define MAX_DIM  7

/*Definicija novog tipa podatka*/

typedef int   matrica[MAX_DIM][MAX_DIM];

/*Prototipovi funkcija.*/

int  minimum(matrica ,int);
void zbir(matrica ,matrica ,int );
void mnozenje(matrica ,matrica ,int ,matrica );

void main(void)
{
    /*Definicija promenljivih.*/
    int n,i,j,amin,bmin;
    matrica a,b,c;

    /*Formiranje matrice.*/

    rand();
    do
    {
        printf("\n\t\t Unesite dimenziju matrice(N<=7): ");
        printf("\n\t\t\t N= ");
        scanf("%d", &n);
    }
    while(n<1||n>MAX_DIM);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++) 
            scanf("%d",&a[i][j]);
    }

    /*Stampanje matrice 'a'.*/
    printf("\n\n\t Matrica A je:\n");
    for(i=0;i<n;i++)
    {
        printf("\n\t");
        for(j=0;j<n;j++) printf(" %d", a[i][j]);
    }

    /*Formiranje matrice 'b'.*/
    rand();
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++) scanf("%d",&b[i][j]);
    }
    /*Stampanje matrice 'b'.*/
    printf(" Matrica B je\n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++) printf(" %d", b[i][j]);
    }
    /*Odredjivanje matrice 'c'.*/
    amin=minimum(a,n);
    bmin=minimum(b,n);
    if(amin>bmin) mnozenje(a,b,n,c);
    else
    {
        mnozenje(b,b,n,c);
        zbir(c,a,n);
    }
    /*Stampanje matrice 'c'.*/
    printf("\n\n\n\t\t Matrica C je:\n");
    for(i=0;i<n;i++)
    {
        printf("\n\t\t");
        for(j=0;j<n;j++)
        {
            if(c[i][j]<100) printf(" %d", c[i][j]);
            else printf(" %d",c[i][j]);
        }
    }
}


I Izbacuje gresku

: error LNK2001: unresolved external symbol _zbir
: error LNK2001: unresolved external symbol _mnozenje
: error LNK2001: unresolved external symbol _minimum
Debug/nekoime.exe : fatal error LNK1120: 3 unresolved externals

Molio bih vas da mi objasnite sta u ovom programu nije lepo napisano, taj program sam dobio gotov u cilju da ja ispravim greske koje sam ispravio donekle, ali ova je iskrsla i nikako mi ne ulazi u glavu sta ne valja.
[ moore @ 17.10.2007. 12:31 ] @
Napisi prvo funkcije zbir, mnozenje i minimum. Ovde su samo prototipovi funkcija:
Code:

/*Prototipovi funkcija.*/

int  minimum(matrica ,int);
void zbir(matrica ,matrica ,int );
void mnozenje(matrica ,matrica ,int ,matrica );
[ genije mladji @ 17.10.2007. 17:50 ] @
Ok, hvala ti, problem resen ;)