Contador

<< < (2/2)

Atika:
Parece que hay un problema con la lógica del bucle. El contador se está incrementando correctamente, pero hay un bucle  do-while que se ejecuta sin tener en cuenta las entradas del usuario.

Parece que estás tratando de solicitar al usuario que ingrese un número del 1 al 4 repetidamente, pero luego estás leyendo un conjunto fijo de números en lugar de utilizar la entrada del usuario.

Aquí tienes el código corregido haber si te sirve:

Código
#include <stdio.h>
 
int main() {
   int contador = 1;
   int jugador[10];
 
   printf("Es tu turno, jugador. Se ha generado tu array y ahora vas a llenarlo.\n");
   printf("Recuerda que has de usar números del 1 al 4.\n");
 
   while (contador <= 10) {
       printf("Introduce el entero del 1 al 4 número %d: ", contador);
       int numero;
       scanf("%d", &numero);
 
       if (numero >= 1 && numero <= 4) {
           jugador[contador - 1] = numero;
           contador++;
       } else {
           printf("\nHas introducido un número fuera del rango. Introduce un número del 1 al 4.\n");
       }
   }
 
   printf("\nValores introducidos por el jugador:\n");
   for (int i = 0; i < 10; ++i) {
       printf("%d ", jugador[i]);
   }
   printf("\n");
 
   return 0;
}

MOD: Etiqueta GeSHi

D3s0rd3n:
Supongo que hay mas codigo. Para empezar creo que te falto incluir "while al inicio del ciclo y se me hace un milagro que el compilador no te eeste regañando. Estas usando C17?

Y aparte contador += 1; esta a fuera del ciclo entonces solo se sumara una vez terminada la ejecucion, no en cada vuelta que es lo que creo que quieres. Solo subelo y asegurate que este andentro de los corchetes de tu ciclo.

Tambien es mejor cuando incrementas de uno usar operador de incrementacion. Osea contador++.

Sadistski:
un pequeño dato con printf: Si ocupa más de 2 líneas podemos saltar el escribir printf dos veces, similar a como se usa con las macros #

Código
printf("dos lineas"\
"o más"\
"seguidas");
 

Navegación

[0] Índice de Mensajes

[*] Página Anterior