Buenas noches.
Antes decir que soy un auténtico novato en esto de la programación, pero en su momento tuve que hacer una cosillas en lenguaje C y me picó la curiosidad :p
La duda que tengo es que estaba realizando un programita para familiarizarme con los do while y los if else y me encontré con dos variantes:
Primera
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int d=4;
int v;
printf ("introduzca un numero del 1 al 10\n");
scanf("%d",&v);
do
{
printf ("El numero escogido es diferente al que estoy pensando\n");
printf ("Escoja otro\n");
scanf("%d",&v);
}
while (v!=d);
printf ("Muy bien, ese es el numero\n");
system("PAUSE");
return 0;
}
segunda
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int d=4;
int v;
printf ("introduzca un numero del 1 al 10\n");
scanf("%d",&v);
do
{
if ((v<1)||(v>10))
{
printf ("Ese numero no esta entre 1 y 10. Escribe otro numero\n");
scanf("%d",&v);
}
else
{
printf ("No ha acertado. Escriba otro numero\n");
scanf("%d",&v);
}
}
while (v!=d);
printf ("Muy bien, ese es el numero\n");
system("PAUSE");
return 0;
}
El problema es que en el primero si el primer número que pongo es el 4 no me hace un primer bucle. Sin embargo en el segundo sí me hace un primer bucle si escojo el cuatro. Y no sé por qué, pues pienso que la estructura es la misma.
Disculpen por el lío y muchas gracias