Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define N 10
- int main(int argc, char *argv[])
- {int matrice[N][N];
- int riga_punta;
- int colonna_punta;
- int altezza_punta;
- int i=0,j=0;
- int attorno=0;
- float altezza_media;
- int somma;
- FILE *fp;
- if(argc!=2){
- printf("error");
- return -1;
- }
- fp=fopen(argv[1],"r");
- if(fp==NULL){
- printf("error");
- return -2;
- }
- for(i=0;i<N;i++){
- for(j=0;j<N;j++){
- matrice[i][j]=0; //inizializzo
- }
- }
- while(fscanf(fp,"%d %d %d",riga_punta,colonna_punta,altezza_punta)!=EOF){
- riga_punta--; // conta da 1 in poi le posizioni e non da 0
- colonna_punta--;
- matrice[riga_punta][colonna_punta]=altezza_punta;
- altezza_punta--; //prima di entrare nel while la nuova altezza deve decrementare
- attorno=1; //primo cubo, ora scendo
- while((altezza_punta>0)&&(attorno<altezza_punta)){
- //riga di sopra
- for(j=colonna_punta-attorno;j<colonna_punta+attorno;j++){
- if(riga_punta-attorno>=0 ){
- matrice[i][j]=altezza_punta;
- altezza_punta--;
- attorno++;
- }
- }
- //riga di sotto
- for(j=colonna_punta+attorno;j<colonna_punta+attorno;j++){
- if(riga_punta+attorno<N ){
- matrice[i][j]=altezza_punta;
- altezza_punta--;
- attorno++;
- }
- }
- //colonna a destra
- for(i=riga_punta-attorno;i<riga_punta+attorno;i++){
- if(colonna_punta+attorno<N ){
- matrice[i][j]=altezza_punta;
- altezza_punta--;
- attorno++;
- }
- }
- //colonna a sinistra
- for(i=riga_punta-attorno;i<riga_punta+attorno;i++){
- if(colonna_punta-attorno>0 ){
- matrice[i][j]=altezza_punta;
- altezza_punta--;
- attorno++;
- }
- }
- //genero nuova matrice
- for(i=0;i<N;i++){
- for(j=0;j<N;j++){
- printf("%d",matrice[i][j]);
- }
- }
- }
- }
- somma = 0;
- for (i=0;i<N;i++)
- {
- for (j=0;j<N;j++)
- {
- somma=somma+matrice[i][j];
- }
- }
- altezza_media = (float) somma/(N*N);
- printf("l'altezza media รจ %.2f\n", altezza_media);
- fp=fopen("mappa.txt","w");
- if(fp==NULL){
- printf("error");
- return -3;
- }
- fprintf(fp,"%d",matrice[i][j]);
- fclose(fp);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement