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?