C/Visual C - Funciones

 
Vista:

Funciones

Publicado por albasti (9 intervenciones) el 29/09/2007 17:08:01
wenas a todos me gustaria resolver un pekeño problema k tengo con un programa k me calcula el area de una figura u otra, segun la k introduzca, y esk siempre el valor del area me da '0', la llamada a la funcion no la ace o nose ya lo e intentao de todas las maneras, asik si alguien me puede decir dond esta el fallo se lo agradeceria, aqui les dejo el codigo, mi compilador es borland c++ 5.01.

#include <stdio.h>
#include <conio.h>

float rectangulo();
float circulo();

void main(void)

{
char cir[11]="circulo",rec[11]="rectangulo",figura[11];
int i,c=0,re=0,n=0;
float radio,a,b,area;
for(i=0;i<11;i++)
figura[i]=NULL;
printf("Intruduce la figura deseada.\n");
gets(figura);
for(i=0;i<11;i++)
{
if(figura[i]==cir[i])
n=n+1;
}
if(n==11)
{
printf("Introduzca el radio.\n");
scanf("%f",&radio);
float circulo;
printf("\nEl area del circulo es %f.\n",area);
while(!kbhit());
}
else
n=0;
for(i=0;i<11;i++)
{
if(figura[i]==rec[i])
n=n+1;
}
if(n==11)
{
printf("Introduce el primer parametro.\n");
scanf("%f",&a);
printf("\nIntroduce el segundo parametro.\n");
scanf("%f",&b);
float rectangulo;
printf("El area del rectangulo es %f.\n",area);
while(!kbhit());
}
else
{
printf("\nLa figura introducida es incorrecta.\n");
while(!kbhit());
}

}

float circulo()

{
float radio,area;
area=3.1416*radio*radio;
return area;
}

float rectangulo()
{
float a,b,area;
area=a*b;
return area;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funciones

Publicado por Trebuchetino (28 intervenciones) el 29/09/2007 19:10:13
El problema está en las funciones secundarias. Me imagino que quieres usar las variables "radio", "a" y "b" declaradas en el main(). Sin embargo, al declararlas otra vez en las funciones "circulo()" y "rectangulo()" estas utilizando variables distintas pero que tienen el mismo nombre.
Puedes probar a borrar dichas variables quedandote el código de esta manera:

float circulo()
{
area=3.1416*radio*radio;
return area;
}

float rectangulo()
{
area=a*b;
return area;
}

De esta manera utilizará las variables que declaraste en el main(). De todas formas, te recomiendo que repases algo más tus apuntes de C porque creo que no te ha quedado muy claro el tema de las funciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funciones

Publicado por albasti (9 intervenciones) el 29/09/2007 20:23:20
weno ya e dado con la solucion aqui dejo el codigo por si a alguien le puede interesar:

#include <stdio.h>
#include <conio.h>

float rectangulo(float x,float y)
{
return x*y;
}
float circulo(float rad)
{
return rad;
}

int main()

{
char cir[11]="circulo",rec[11]="rectangulo",figura[11];
int i,c=0,re=0,n=0;
float radio,a,b,area;
for(i=0;i<11;i++)
figura[i]=NULL;
printf("Intruduce la figura deseada.\n");
gets(figura);
for(i=0;i<11;i++)
{
if(figura[i]==cir[i])
n=n+1;
}
if(n==11)
{
printf("Introduzca el radio.\n");
scanf("%f",&radio);
area=3.1416*circulo(radio);
printf("\nEl area del circulo es %f.\n",area);
while(!kbhit());
}
else
n=0;
for(i=0;i<11;i++)
{
if(figura[i]==rec[i])
n=n+1;
}
if(n==11)
{
printf("Introduce el primer parametro.\n");
scanf("%f",&a);
printf("\nIntroduce el segundo parametro.\n");
scanf("%f",&b);
area=rectangulo(a,b);
printf("El area del rectangulo es %f.\n",area);
while(!kbhit());
}
else
{
printf("\nLa figura introducida es incorrecta.\n");
while(!kbhit());
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar