[ DzoA @ 07.04.2006. 09:55 ] @
Napisati program kojim se niz vrednosti :1,2,3,4 ... ,n*n upisuje spiralno u matricu u smeru suprotnom od kretanja kazaljke na satu.Na primer, za n=4 dobija se :



10 9 8 7


11 2 1 6


12 3 4 5


13 14 15 16



e ja sam sad nesto pokusavao da napravim:
Code:

#include <stdio.h>
int matrica [50][50];

void main()
{
    int n,j,i,k,p,m,q,s;
    void desnolevo();
    void levodesno();
    void goredole();
    void dolegore();
    printf("unesi dimenziju matrice:\n");
    scanf("%d",&n);
    m=n*n;
    p=-1;
    k=0;
    i=n;
    j=n;
    q=n;
    s=n-1;
    while(m!=0){
        desnolevo(n,k,p,i,j,m);
        dolegore(n,k,p,i,j,m);
        k++;
        levodesno(n,k,s,i,j,m);
        goredole(n,k,s,i,j,m);
        s--;
    }
}
void desnolevo(int n,int k,int p,int i, int j,int m)
{
    for (;p!=n-k;i--);
    {
        matrica[i][j]=m;
        m--;
    }    
}
void dolegore(int n,int k,int p,int i, int j,int m)
{
    for (;p!=n-k;j--)
    {
        matrica[i][j]=m;
        m--;
    }
}
void levodesno(int n,int k,int s,int i, int j,int m)
{
    for (;s!=n-k;i++)
    {
        matrica[i][j]=m;
        m--;
    }
}
void desnolevo(int n,int k,int s,int i, int j,int m)
{
    for (;s!=n-k;j++)
    {
        matrica[i][j]=m;
        m--;
    }
}

Znam da ovo moze dosta elegantnije ali me zanima kad bismo radili na ovaj nacin gde trebaju pokazivaci i zasto mi se javlja problem oko funkcija:
"function does not take 6 parameters"
6 parametara sam uneo istog tipa... sta nije u redu??
[ klichko @ 07.04.2006. 10:35 ] @
Gresku ti javlja zbog ovog dela:
Code:

void desnolevo();
void levodesno();
void goredole();
void dolegore();


Takodje mislim da si u ovim for petljama hteo da kazes
Code:
for (;p!=i-k;i--)
for (;p!=j-k;j--)
for (;s!=i-k;i++)
for (;s!=j-k;j++)

Znaci i i j umesto n

Takodje u desnolevo funkciji ti posle for petlje stoji ; tako da ta for petlja nece raditi ono sto si hteo.

A za sta si hteo koristiti pokazivace?