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à