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.

Jack_nuts

[MOD]: Publica los posts de programación en el subforo correspondiente. Usa las etiquetas GeShi para insertar código.
Bienvenido al foro, pero lee las reglas del foro.




Código (cpp) [Seleccionar]
#include<stdio.h>
#include<math.h>

int main(){

float r, c, PI;
PI = 3.1416;

c = 2 * PI * r;
r = c / (2 * PI);

printf("\n Defina la variable longitud de la circunferencia si la conoce, si no pulse enter");
scanf("%.2f", &c);

if(c==[b]NOT DEFINED[/b]){
printf("\n Defina la variable longitud del radio de la circunferencia si la conoce, si no pulse 0");
scanf("%.2f", &r);
}else{
printf("\n El valor de la longitud del radio es: %.2f",r);
}

printf("\n El valor de la longitud de la circunferencia es: %.2f",c);

return 0;
}

Randomize

#1
¡Qué alguien mueva ésto a otro sitio!


Ha sido movido  :-*

MAFUS

C no tiene variables indefinidas. Pero puedes hacer otra cosa: por ejemplo tomar una cadena. Si la lees y es un dato numérico transfórmalo como tal y lo introduces en una variable, si es un retorno de carro trata eso como valor no definido.

Jack_nuts


No sé si he entendido bien, llevo poco aprendiendo C.

Me sugieres que use una cadena para definir la variable c (longitud circunferencia)
(lo que quiero es que cuando no se introduzca el valor de la variable c ("longitud circunferencia") salte y pida el dato "radio", supongo que eso es un retorno de carro.

Entonces qué debo hacer? Paso 1º, cambiar "float c" por "char c50]", bien.

Pero a qué debo igualar c en mi condición IF para que cuando no se le asigne un valor salte y pida el valor de la siguiente variable (longitud del radio)?

Gracias. Saludos.

engel lex

Citarlo que quiero es que cuando no se introduzca el valor de la variable c ("longitud circunferencia") salte y pida el dato "radio"

normalmente aquí simplemente colocas un mensaje que diga
Citarintroduzca la longitud del circulo (si no desea introducir la longitud sino el radio coloque 0)

y completas con un "si longitud es 0 has lo otro"

te digo 0, ya que un circulo de longitud 0... bueno, es imposible, no es un circulo
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Jack_nuts

Pero si le digo

printf("introduzca la longitud del circulo (si no desea introducir la longitud sino el radio coloque 0!")

La máquina entiende que el valor de c es igual a 0 y ya no me pide el radio porque también le asigna el valor 0. Yo no quiero usar 0, yo quiero usar ENTER (para el salto)

Me gustaría, si puede ser, que cuando no se conozca el dato c (longitud de circunferencia), se presione ENTER y me pida el dato r (longitud del radio).

Entonces, en el cuerpo del programa, debería:

Pedir el valor de c(cicunferencia).
- se le da un valor - calcula el radio
- no se le da un valor (Pulsando Enter)
            - entonces -pìde el radio
                                 - se le da un valor - calcula la circunferencia
                                 - no se le da un valor (sale de la función)

Eso sería genial !

Gracias y saludos.

Randomize

¡¡¡ Cómo me gusta que hablen los mayores !!!

Uno se caya y aprende  ;D


Os sigo leyendo  ;)

Jack_nuts

No si yo soy muy mayor pero soy un completo ignorante, hace poco que empece a programar y estaba practicando y me concontre con esta incognita.

Es decir pido un valor y quiero que calcule el otro,
si se da el valor a -> calcule b
caso contrario -> entonces quiero que pida el valor b y calcule a

hm voy a probar una cosa...

gracias, saludos.

ivancea96

Para lo que buscas:

Utiliza fgets para leer en la cadena. Si el usuario pulsa enter, la cadnea tendrá longitud 1 y su primer caracter será el salto de linea:
#include <stdio.h>
#include <string.h>

int main(){
char c[50];
fgets(c, 50, stdin);

printf("%i - %i", (int)c[0], strlen(c));
}


Luego, si no es un salto de línea, conviertes la cadena a un int con stoi:
#include <stdlib.h>
#include <stdio.h>

int main(){
char c[50];
fgets(c, 50, stdin);

if(c[0] != '\n'){
int n = atoi(c);
printf("%i", n);
}
}

Jack_nuts

#9
Gracias Ivancea, pero no tengo tanto nivel de programación, necesito practicar con lo que sé de mi nivel, if, else if, while, variables int, float, char, double, etc.

Lo que me has escrito, cosa que te agradezco inmensamente, no lo entiendo,

------------ A ver así -------------

#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");
scanf("%.2f", &c);

c = 2 * PI * r;
r = c / (2 * PI);

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);
}
printf("\n El valor de la longitud del radio es: %.2f",r);
printf("\n El valor de la longitud de la circunferencia es: %.2f",c);
}
return 0;
}

----------------------------------------
(PREGUNTA Como se sale de else if?)


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex