#include <stdio.h> int main() { int a; scanf("%d", &a); int if_again = 1; int c = 1; switch (a) { case 1: while (if_again == 1) { scanf("%d", c); if (c == 1) { if_again == 1; } else { if_again == 0; } } } return 0; }Se termina después de dar 1 solo dos veces, pero debe seguir repitiéndose hasta que se ingrese 0. ¿Qué está mal con mi código?
scanf necesita la dirección base de una variable que le des. Así que scanf("%d, c); necesita ser scanf(%d, &c);
El siguiente código también es incorrecto:
if (c == 1) { if_again == 1; }El compilador piensa que está comparando "if_again" con 1. ¿Creo que está tratando de establecer la variable en 1? En ese caso haz esto:
if (c == 1) { if_again = 1; } Lo mismo es cierto para la sentencia else .
Además, ¿por qué hay una declaración de cambio? Si quieres verlo a es 1, entonces solo a un if