salve ho questo codice:
codice:#include <stdio.h> #include <stdlib.h> #define DIM_LOC 3 #define N_MAX 10 int main (void) { int vett_masse[N_MAX]; int mat[N_MAX][DIM_LOC]; FILE *fp; int f,n,i; char s [30]; float totmasse = 0; float cx = 0, c1 = 0, cy = 0, c2 = 0, cz = 0, c3= 0; /* Apri il file che contiene i dati */ if(( fp = fopen ("points.dat","r")) == NULL) { printf("\nNon Posso aprire il file.\nFile mancante nella directory.\n"); }else { /* Leggi la prima riga (n = numero di elementi) */ fgets (s,30,fp); sscanf (s,"%d",&n); /* Ciclo per stampare la matrice della locazione*/ printf (" Locazione:\n"); for (f=0;f<n;f++) { fgets (s,30,fp); sscanf (s,"%d %d %d %d\r\n", &mat[f][0],&mat[f][1],&mat[f][2],&vett_masse[f]); printf (" %d %d %d \n\n", mat[f][0],mat[f][1],mat[f][2]); } printf (" Masse:\n\n"); /* Ciclo per stampare la colonna delle masse */ for (f=0;f<n;f++) { printf (" %d\n\n", vett_masse[f]); totmasse = totmasse + vett_masse[f]; } /* Stampare il numero */ printf (" n:\n %d\n\n", n); for (f=0;f<n;f++) { c1=c1 + (vett_masse[f] * mat[f][0]); c2=c2 + (vett_masse[f] * mat[f][1]); c3=c3 + (vett_masse[f] * mat[f][2]); } cx = (1/totmasse)*(c1); cy = (1/totmasse)*(c2); cz = (1/totmasse)*(c3); printf("IL CENTRO DI GRAVITA E' C(%.3f, %.3f, %.3f)\n\n" , cx, cy, cz ); }/*chiude l'else*/ system("pause"); return(0); }
dovrei creare 3 funzioni ovvero dividere il programma in 3:
la prima "get" la quale prende il file di inpute il massimo valore di n come parametri e inserisce inserisce l'array bidimensionale(mat) come parametro di output e l'array monodimensionale(vett_masse) come parametro di output. ritorna come valore della funzione il valore attuale della n.
grazie mille a colui che mi risponderà

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando