Como declaro una variable como no dfinida o especificada en C

Iniciado por Jack_nuts, 4 Febrero 2017, 14:26 PM

0 Miembros y 1 Visitante están viendo este tema.

ivancea96

Los códigos que te puse son cortos. Dime qué partes no entiendes, y las explico.

Citar   if(c!=0){
      printf("\n El valor de r es igual a: %f",r);
   }else if(c==0){
      printf("\n La longitud de la circunferencia es 0");
      EXIT?                                       // Como hago para salir de la condición "else if"?
   }else{
      printf("\n Defina la variable longitud del radio: ");
      scanf("%.2f", &r);
   }

Si de la segunda condicion quieres pasar directamente al else, pues, directamente, mételo todo junto:

   if(c!=0){
      printf("\n El valor de r es igual a: %f",r);
   }else{
      printf("\n La longitud de la circunferencia es 0");
      printf("\n Defina la variable longitud del radio: ");
      scanf("%.2f", &r);
   }


Además, no necesitas poner la condición "c==0". Si no se cumple "c!=0" significa que siempre se cumplirá "c==0".

Jack_nuts

Cita: Además, no necesitas poner la condición "c==0". Si no se cumple "c!=0" significa que siempre se cumplirá "c==0".

Bueno, bien. Si c es 0 -> a or si no es 0 ->b

Correcto, pero yo quiero que también haya una tercera posibilidad además de "0" y "!=0" yo quiero además el caso en el que no se introduce ningún valor para c (quizás dando Enter?), ya se que me han dicho que no puede haber variables no definidas pero tiene que haber alguna forma de que cuando c (la circunferencia) no se conozca, pues que me pida r, y eso no es ni "0" ni "!=0" es una tercera opción...

¿Quizás con una variable char c[50] por ejemplo?
¿Alguien sabe como sería?

Gracias de antemano y saludos.

____________________

#include<stdio.h>
#include<math.h>

int main(){

   float c,r,PI;
   PI = 3.1416;
   
   printf("\n Defina la variable longitud de la circunferencia si la conoce, si no pulse enter"); // Se puede pedir ENTER? Es correcto?
   scanf("%.2f", &c);
   
   c = 2 * PI * r;
   r = c / (2 * PI);
   
   if(c!=0){
     printf("\n El valor de r es igual a: %.2f",r);
     }else{
     printf("\n La longitud de la circunferencia es 0");
     printf("\n Defina la variable longitud del radio: ");
     scanf("%.2f", &r);
     }
   
   return 0;
}

ivancea96

Un int guarda números. Tú quieres leer un número O una línea en blanco. No puedes leer una línea en blanco en un int, así que hay que hacerlo al revés: primero, leer la línea que introduce el usuario como una cadena, y luego, si no está vacía, transformarla en int. Eso es lo que hago en el mensaje que puse antes. Si no entiendes algo de esos códigos, dímelo. Pero esa es una manera.

Jack_nuts

Entiendo que debo poner c como una cadena y que debe estar antes que la demanda de un valor para r pero el resto no lo entiendo.

En cualquier caso gracias este programa lo dejo para más adelante, ahora no soy capaz de resolverlo.

Saludos

ivancea96

Si nunca trabajaste con cadenas de caracteres o si lo vas  ahacer más adelante, entonces lo mejor que puedes hacer es aceptar el 0 (o un valor negativo) como "comando" para pedir el radio.
Citar       if(c!=0){
          printf("\n El valor de r es igual a: %f",r);
       }else{
          printf("\n La longitud de la circunferencia es 0");
          printf("\n Defina la variable longitud del radio: ");
          scanf("%.2f", &r);
       }

Jack_nuts

Es que no quiero que se tenga que introducir el valor 0 para el retorno de carro, yo quiero que se use enter

Es decir:

Deme un valor para circunferencia -- > Enter (no se conoce)
 Pues deme un valor para el radio --->por ejemplo 5
           Pues entonces la circunferencia es igual a: _____ lo que sea.

Gracias y saludos.

MAFUS

Pues lo dicho, hasta que no aprendas a usar cadenas no podrás hacerlo como quieres.