Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    8

    [c] Problemi nel compilare un programma

    Salve a tutti sono da poco entrato nel mondo dell'informatica a causa di un'esame all'università. Studiavo gli array e i cicli e mi sono imbattuto in uno spezzone di programma che ho cercato di completare e testare. Il gcc è pulito, tuttavia all'esecuzione il programma non funge correttamente. Per la precisione qualora inserisca più di 4 raggi il risultato ottenuto è scorretto. Posto il file sorgente :

    codice:
    #include <stdio.h>
    
    float Areacerchio(float raggio);
    int main ()
    {
        int i = -1, n = 0;
        float raggio [5], area [5];
        printf ("\n Enter 0 to quit.");
                  do {  i++;
                          printf("\n Numeri Radius ?");
                          scanf("%f",&raggio[i]);
                          area[i] = Areacerchio(raggio[i]);
                         }
        while ((raggio [i] !=0) && (i<5));
        n = i;
        for( i = 0; i<n; i++)
        {
        printf("\n Radius = %.2f, Area = %.2f\n", raggio [i], area[i]);
        }
    return 0;
    }
    float Areacerchio(float raggio)
    {
    const float pi=3.14;
    float a;
    a = pi*raggio*raggio;
    return (a);
    }


    Dove ho sbagliato? Avendo indicato 5 nel valore di Area e raggio non dovrei avere 5 elementi a disposizione?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    "non funge correttamente"

    cosa vuol dire di preciso?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    8
    Che all'esecuzione laddove sfrutto tutti e 5 elementi del mio array il programma mi da dei risultati sballati.
    Posto un esempio :
    codice:
     Enter 0 to quit.
     Numeri Radius ?1
    
     Numeri Radius ?2
    
     Numeri Radius ?3
    
     Numeri Radius ?4
    
     Numeri Radius ?5
    
     Numeri Radius ?0
    
     Radius = 0.00, Area = 3.14
    
     Radius = 2.00, Area = 12.56
    
     Radius = 3.00, Area = 28.26
    
     Radius = 4.00, Area = 50.24
    
     Radius = 5.00, Area = 78.50

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468

    Re: [c] Problemi nel compilare un programma

    Originariamente inviato da Suppish
    Per la precisione qualora inserisca più di 4 raggi il risultato ottenuto è scorretto.
    Ma allora non è un problema di compilazione (come indicato nel titolo) ma di esecuzione ...

    Dove ho sbagliato? Avendo indicato 5 nel valore di Area e raggio non dovrei avere 5 elementi a disposizione?
    Sì, ma gli elementi sono numerati da 0 a 4 ... quindi, nel tuo caso, devi scrivere

    while ((raggio [i] !=0) && (i<4));




    P.S. Se modifichi il post originale, dopo una risposta, non si capisce piu' nulla ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    8
    Volevo innanzitutto ringraziarti per le dritte che mi hai dato sia per il forum sia per il programma. Il secondo funziona è questo è bene , per le prossime discussioni presterò attenzione a quanto mi hai detto. Grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.