La version de este programa que utiliza enteros en vez de caracteres me salió sin ningún problema, pero en esta version, en la que se pide realizar lo mismo pero con caracteres no entiendo por qué se salta scanf's, rellena irracionalmente espacios, desordenando el tablero, etc...
He comprobado que el tipo de datos valor sea char, que los scanf recojan los caracteres con %c, que el tablero muestre los numeros con %c...
El fallo parece estar a partir de introducir el primer valor que se pide, a partir de ahí es el caos, repite todo de 2 en 2.
Creedme, si no estuviera tan desquiciado no habría preguntado. Puede que sea una tontería, pues estoy empezando, pero no lo entiendo. Respecto al uso de bucles, no he usado porque no nos lo permiten aún, así como punteros, etc... la estructura que tengo es la pedida.
Aquí el código fuente del programa:
Código
#include <stdio.h> #define TAM 9 //Por mayor comodidad y fiabilidad, establecemos que TAM equivalga a la constante 9 void main() { char valor[TAM]; int hueco = TAM; //El número de huecos del tablero será igual a TAM hasta que se decremente en una unidad sucesivamente double porcentaje; //Declaramos el tipo de dato double porcentaje para mostrar el % adecuado en cada momento valor [0]='.'; valor [1]='.'; valor [2]='.'; valor [3]='.'; valor [4]='.'; //Inicializamos con '.' todas las variables, como se pide. valor [5]='.'; valor [6]='.'; valor [7]='.'; valor [8]='.'; printf("B | %c %c %c |\n", valor[3], valor[4], valor[5]); //Mostramos el tablero con todos los huecos (variables) con '.' scanf("%c", &valor[0]); //En ésta ocasión y las siguientes, iremos almacenando en el tablero los valores del usuario porcentaje = (100/9.)*(TAM-8); //Cálculo del porcentaje, que se irá actualizando conforme vayamos restando una unidad a TAM printf("B | %c %c %c |\n", valor[3], valor[4], valor[5]); //Comienzo del proceso que se repite hasta alcanzar el número de printf("C | %c %c %c |\n", valor[6], valor[7], valor[8]); //huecos 0 y porcentaje del tablero lleno 100.00% valor [0]; valor [1]='.'; valor [2]='.'; valor [3]='.'; valor [4]='.'; valor [5]='.'; valor [6]='.'; valor [7]='.'; valor [8]='.'; porcentaje = (100/9.)*(TAM-7); hueco--; valor [0]; valor [1]; valor [2]='.'; valor [3]='.'; valor [4]='.'; valor [5]='.'; valor [6]='.'; valor [7]='.'; valor [8]='.'; porcentaje = (100/9.)*(TAM-6); hueco--; valor [0]; valor [1]; valor [2]; valor [3]='.'; valor [4]='.'; valor [5]='.'; valor [6]='.'; valor [7]='.'; valor [8]='.'; porcentaje = (100/9.)*(TAM-5); hueco--; valor [0]; valor [1]; valor [2]; valor [3]; valor [4]='.'; valor [5]='.'; valor [6]='.'; valor [7]='.'; valor [8]='.'; porcentaje = (100/9.)*(TAM-4); hueco--; valor [0]; valor [1]; valor [2]; valor [3]; valor [4]; valor [5]='.'; valor [6]='.'; valor [7]='.'; valor [8]='.'; porcentaje = (100/9.)*(TAM-3); hueco--; valor [0]; valor [1]; valor [2]; valor [3]; valor [4]; valor [5]; valor [6]='.'; valor [7]='.'; valor [8]='.'; porcentaje = (100/9.)*(TAM-2); hueco--; valor [0]; valor [1]; valor [2]; valor [3]; valor [4]; valor [5]; valor [6]; valor [7]='.'; valor [8]='.'; porcentaje = (100/9.)*(TAM-1); hueco--; valor [0]; valor [1]; valor [2]; valor [3]; valor [4]; valor [5]; valor [6]; valor [7]; valor [8]='.'; porcentaje = (100/9.)*(TAM); hueco--; valor [0]; valor [1]; valor [2]; valor [3]; valor [4]; valor [5]; valor [6]; valor [7]; valor [8]; }