PDA

View Full Version : [C] uso di liste multiple


annam90
01-06-2010, 19:10
ho una domanda...devo realizzare un programma che effettui operazioni su matrici. il tipo matrice perņ deve essere una lista di liste-


la prima funzione, creamatrice per l'appunto crea dei problemi.

questo č il main
#include <stdio.h>
#include <stdlib.h>
#include "funzioni.h"

int main()
{
matrice matrice1;
int i,righe,colonne;

matrice1.prox=&matrice1;
matrice1.colonne.prox=&matrice1.colonne;

scanf("%d",&righe);
scanf("%d",&colonne);
creamatrice(&matrice1,righe,colonne);

for(i=0;i<4;i++){
printf("%f ",matrice1.colonne.element);
matrice1.colonne=*matrice1.colonne.prox;}

system("PAUSE");
return 0;
}

questo il file .c con la funzione:

#include <stdio.h>
#include <stdlib.h>
#include "funzioni.h"

void creamatrice(matrice* matrice1, int righe, int colonne)
{
int count,i;

count=0;
while(count<colonne){

for(i=0;i<2;i++){
matrice1->colonne.element=5;
if(i!=righe-1)
matrice1->colonne = *matrice1->colonne.prox;
else
matrice1->colonne.prox=NULL; }

for(i=2;i<4;i++){
matrice1->colonne.element=2;
if(i!=righe-1)
matrice1->colonne = *matrice1->colonne.prox;
else
matrice1->colonne.prox=NULL; }
matrice1=matrice1->prox; count++; }
}


file .h
#include <stdio.h>
#include <stdlib.h>

typedef struct A { float element; struct A * prox; } RIGHE;
typedef struct B { RIGHE colonne; struct B * prox; } matrice;

extern void creamatrice(matrice* matrice1, int righe, int colonne);
extern void stampamatrice(matrice *);
extern void scrivielemento(matrice *, float, int, int);
extern float leggielemento(matrice *, int, int);
extern int numerorighe(matrice *);
extern int numerocolonne(matrice *);



ora cm ora il puntatore punta sempre alla stessa struttura mentre io voglio che punti sempre ad una nuova struttura quando chiamato...come fare?

DanieleC88
02-06-2010, 02:15
ora cm ora il puntatore punta sempre alla stessa struttura mentre io voglio che punti sempre ad una nuova struttura quando chiamato...come fare?

Potresti riformulare la domanda?
ciao ;)

P.S.: gli "extern" nell'header non sono strettamente necessari.