Dev - C++ - Por que mi codigo solo ejecuta hasta while

 
Vista:
sin imagen de perfil

Por que mi codigo solo ejecuta hasta while

Publicado por Andres (4 intervenciones) el 12/07/2022 04:52:38
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int x = 0, z = 0, s = 0, sv = 0;
srand(time(NULL));
x = rand() % 101;
z = rand() % 101;
printf("%d \n", x);
printf("%d \n", z);
printf("Ingresar la suma entre los dos numeros generados: ");
sv = x + z;
scanf("%d", s);

while (s != sv) {
printf("Incorrecto , intente de nuevo la suma");
scanf("%d", s);
break;
}
printf("Realizo de forma correcta la suma");
return 0;
}
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
sin imagen de perfil

mas contexto del problema

Publicado por Andres (4 intervenciones) el 12/07/2022 05:04:52
Para dar mas contexto solo se ejecuta hasta antes del while no se si me equivoque en algo o si es
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
sin imagen de perfil
Val: 417
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Por que mi codigo solo ejecuta hasta while

Publicado por Thanatos (199 intervenciones) el 12/07/2022 08:21:40
Porque scanf espera que le pases la dirección de memoria de s como segundo argumento, en lugar de eso le estás pasando el valor de s. Escribe un símbolo ampersand (&) delante de la variable s en las dos llamadas a scanf:

1
scanf("%d", &s);

Cuando el usuario ingrese un resultado incorrecto para la suma, la sentencia break hará que las instrucciones dentro del while se ejecuten sólo una vez. Si necesitas que las iteraciones continúen hasta que el usuario ingrese la respuesta correcta, deberías quitar el break.
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