[C] Programma per il calcolo delle aree

di il
1 risposte

[C] Programma per il calcolo delle aree

Ragazzi sto imparando ad usare le strutture e ho scritto un programmino che date le coordinate (x,y) due volte, mi costruiscono due punti che automaticamente formano un rettangolo.

E mi deve restituire l'area del rettangolo ma non funge cosa è che non va'?

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

int main(int argc, char *argv[])
{
    struct punto
    {
      int x;
      int y;       
    };
    
    struct rettangolo
    {
      struct punto uno;
      struct punto due;       
    }rosso;
    
    printf("Programma per il calcolo dell' area del rettangolo :\n");
    
    scanf ("Immetti la coordinata x del primo punto : %d", &rosso.uno.x);
    scanf ("Immetti la coordinata y del primo punto : %d", &rosso.uno.y);
    
    scanf ("Immetti la coordinata x del secondo punto : %d", &rosso.due.x);
    scanf ("Immetti la coordinata y del secondo punto : %d", &rosso.due.y);
    
    int area = (rosso.uno.x - rosso.due.y) * (rosso.uno.x - rosso.due.y);
    
    printf("%d", area);
  
  system("PAUSE");    
  return 0;
}

1 Risposte

  • Re: [C] Programma per il calcolo delle aree

    #include <stdio.h>
    #include <stdlib.h>
    
    /************IL SOFTWARE ORA E` ROBUSTO************/
    
    /*Le strutture dichiarale al di fuori del main,
    in modo che tutte le funzioni possano usufruirne.
    
    Il typedef ti consente di non riscrivere ogni volta struct quando usi
    una struttura.*/
    
    typedef struct
    {
        int x;
        int y;       
    }Punto;
    
    /* Il vero programmatore sa sempre quando usare le maiuscole.
    Bisogna per buona programmazione che ogni struttura sia con la
    maiuscola.*/
    
    typedef struct
    {
        Punto uno;
        Punto due;       
    }Rettangolo;
    
    int main(int argc, char *argv[])
    {
        int area; /*Nel C e` meglio dichiarare le variabile sempre all'inizio delle funzioni.*/
        Rettangolo rosso; /*Si dichiara una variabile di tipo rettangolo*/
        
        /*Eccolo il titolo*/
        printf("Programma per il calcolo dell' area del rettangolo :\n");
        
        /*Quando fai una richiesta, devi farlo in un printf a parte,
        la scanf ha come parametri : una stringa che indica il tipo da fare acquisire 
        e l'indirizzo della variabile.*/
        printf("Immetti la coordinata x del primo punto : ");
        scanf ("%d", &rosso.uno.x);
        printf("Immetti la coordinata y del primo punto : ");
        scanf ("%d", &rosso.uno.y);
        
        printf("Immetti la coordinata x del secondo punto : ");
        scanf ("%d", &rosso.due.x);
        printf("Immetti la coordinata y del secondo punto : ");
        scanf ("%d", &rosso.due.y);
        
        /*Come vedi area e` stata dichiarata prima all'inizio e non da warning.*/
        area = (rosso.uno.x - rosso.due.y) * (rosso.uno.x - rosso.due.y);
        
        printf("%d", area);
        
        /*Non usare SYSTEM una una semplice scanf per far attendere l'utente
        poiche` scanf e` portabile per qualsiasi sistema operativo.*/
        scanf("none");
      return 0;
    }/*main*/
    Le considerazioni ci sono nei commenti, leggili e fammi sapere se non capisci qualcosa!
Devi accedere o registrarti per scrivere nel forum
1 risposte