|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 26
|
[C]Dove sbaglio?
Salve ho dei problemi con questo codice(quando chiamo la funzione stampa mi stampa tutti 0)
Codice:
void video(int** A,int n);
int main(int argc, char *argv[])
{
int m;
int i,j;
double **matrice;
printf("Inserisci la dimensione della matrice: \n");
scanf("%d",&m);
int n=m+1;
double b[n+1]; //vettore dei termini noti
matrice=calloc(n,sizeof(double*));
double cont;
for (i=0;i<=n;++i){
matrice[i]=calloc(n+1,sizeof(double));
}
for(i=1;i<n;i++)
{
for (j=1;j<n;j++)
{
matrice[i][j]=cont;
// printf("%f\t",matrice[i][j]);
cont++;
}
// printf("\n\n\n");
}
video(matrice,n);
system("PAUSE");
return 0;
}
void video(int** A,int n)
{
int i;
int j;
for(i=1;i<n;i++)
{
for (j=1;j<n;j++)
{
printf("%f\t",A[i][j]);
}
printf("\n\n\n");
}
}
speriamo che qualcuno lo sappia perchè io tra un pò impazzisco |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
ehm ... la funzione stampa non c´e´
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1451
|
matrice=calloc(n,sizeof(double**));
matrice[i]=calloc(n+1,sizeof(double *)); Prova così
__________________
Ciao ~ZeRO sTrEsS~ |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
double **matrice;
void video( int **A,int n ) printf("%f\t",A[i][j]); dichiari double, ricevi int e stampi float ...
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 26
|
|
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 26
|
ne approffitto per chiedere il prototipo di una funzione per prendere una matrice dal file;
grazie solo il prototipo; |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
cosa intendi ? se sai le dimensioni della matrice leggi con una fread ...
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 26
|
ciao,
Allora ho la mia matrice salvata su file,(sono in possesso solo del nome del file) (non so gli elementi presenti) potrebbe essere anche 1000X1000 io avevo pensato cosi: void leggidafile() { FILE* fp; ..... ... ... adesso dovrei allocare una matrice double [n][n](quadrata) PARI AGLI ELEMENTI del file potrei contare solo le righe o solo le colonne ed aggiornare il valore di n man mano che incontro un elemento ma non so come fare |
|
|
|
|
|
#9 |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 26
|
ECCO DOVE MI SONO FERMATO
Codice:
void leggi_da_file()
{
FILE*fp;
char buf[256];
int n;
double A[n][n];
char* filename="C:\\matrice.txt";
int riga=0;
if((fp=fopen(filename,"r+"))==NULL)
{
printf("Impossibile aprire il file");
return;
}
else
{
//in questo punto devo allocare una matrice pari alla dimensione degli elementi presenti nel file;
|
|
|
|
|
|
#10 |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 26
|
un ultimo grandissimo problema...
all'uscita della funzione mi deve ritornare una matrice creata dinamicamente pari agli elementi del file; come si mette nel prototipo il ritorno??? |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
double **funz(...)
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
#13 |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 26
|
Grazie adesso mi manca solo il modo di leggere gli elementi del file e poi apro lo spumante!!!!!
perchè non ho capito bene come fare sono elemento di tipo double Siete tutti bravissimi!! Ultima modifica di comm64 : 26-04-2007 alle 17:15. |
|
|
|
|
|
#14 |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 26
|
Codice:
1.189207 1.259921 1.414214 2.000000 1.259921 1.414214 2.000000 4.000000 1.414214 2.000000 4.000000 8.000000 2.000000 4.000000 8.000000 16.000000 questo è un esempio del file che ha 16 elementi a me interesserebbe solo contare le righe o le colonne ma anche tutti gli elementi e poi ci faccio la radice quadrata che tanto è sempre una matrice NxN |
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#16 | |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 26
|
Quote:
quindi ho allocato la matrice dinamicamnte, il problema adesso è la lettura ed inserimento in mtarice degli elementi potresti farmi l'esempio di una fread? mettiamo caso che la mia matrice sia A[n][n] come uso la fread per inserire ? Grazie |
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
size_t fread(void *restrict ptr, size_t size, size_t nitems,FILE *restrict stream); quindi fai: fread( A, sizeof(A) * <numero matrici da leggere>, 1, pFile); se non ho sbagliato qualcosa, sono un po´ impegnatuccio e ho scritto al volo ciao
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:00.




















