Duda de estudiante rayado: xD
Bueno, pues después de darle miles de vueltas... a ver si me echais una mano, el caso es que esta cosa tan tonta (que pretendo que sea un conecta4) me está dando más de un dolor de cabeza y aún no he hecho más que empezar... Que mal llevo esto del C después de usar java xD
Pues antes que nada ahí va el trozo de código.. [quote] #include <stdio.h> #include <string.h> #define MAXCHAR 100 #define FILAS 10 #define COL 8 typedef enum {false, true} boolean; typedef char String[MAXCHAR]; typedef int tj[FILAS][COL]; void imprimirTabla(tj); //boolean ComprobarFilas( pasamos tabladejuego y puntero a findejuego); void main(void){ tj tablero; int i,j=0; boolean findejuego=false; String jugad1; String jugad2; //Creando jugadores printf("Bienvenido a Conecta4 tal tal\n"); printf("\n Introduce el nombre del jug1: "); scanf("%s", jugad1); printf("\n Introduce el nombre del jug2: "); scanf("%s", jugad2); // Todo Crear la tabla y ponerla a cero for (i=0;i<FILAS;i++){ for (j=0;j<COL;j++){ tablero[i][j]=0; } } //FIN crear y poner a cero el tablero imprimirTabla(tablero); } void imprimirTabla(tj tabl){ int h,m; for (h=0;h<FILAS;h++){ for (m=0;m<COL;m++){ printf("%n ", tabl[h][h]); } printf("\n"); } }[/quote] El problema está en la función imprimirTabla, que no sé por qué, me provoca un error general. Un saludo y cuento, una vez más, con vuestra ayuda! |
Esteeee ... ya si eso luego le echo un vistazo y te cuento, jejejeee. Es broma, lo siento compi pero ni flowers de tu problemilla. Fijo que te ayudan a solventarlo. Paciencia.
Un abrazo y suerte. |
5ª línea por la cola, lees mal la tabla y por ahí puede petar si excedes los valores.
Pones printf("%n ", tabl[h][h]); y debería poner printf("%n ", tabl[h][m]); El resto lo veo correcto a primera vista. Saludos |
fectivamente.
Cuando printf("%n ", tabl[h][h]) llegue a printf("%n ", tabl[10][8]) catapun!!! porque el array solo esta dimensionado a 8 (0 a 7) y te excedes del tamaño. |
Totalmente de acuerdo, pero no es eso, eso ha sido un error al corregir otra cosa, poniéndolo bien sigue pasando lo mismo... alguna otra sugerencia?
|
Que error te da exactamente FiEsTaMaN?
Saludos |
Hola, el error lo sigues teniendo en esa misma línea:
Código PHP:
El identificador de formato %n se usa para otro propósito (indica el número de caracteres impresos hasta ese punto, en ese printf). Además espera un puntero y no un valor en la lista de argumentos y tú le estás poniendo el valor de tabl[h][m]. Por eso falla. Un saludo |
Cita:
UN SALUDO! Edito: Realmente no sabía ni que existía el %n, para que sirve? |
Cierto, se me pasó.
%n = Guarda el número de caracteres entradas hasta ahora en este fscanf, scanf, o sscanf. El argumento correspondiente es un puntero a un entero. Por ejemplo: int tam; printf( "Introduce una palabra (hasta 10 letras): " ); scanf( "%s%n", cadena, &tam ); // en este ejemplo, cadena contendría la palabra introducida y tam el número de caracteres Saludos |
[QUOTE=ElZazu]Cierto, se me pasó.
%n = Guarda el número de caracteres entradas hasta ahora en este fscanf, scanf, o sscanf. El argumento correspondiente es un puntero a un entero. Por ejemplo: int tam; printf( "Introduce una palabra (hasta 10 letras): " ); scanf( "%s%n", cadena, &tam ); // en este ejemplo, [B]cadena[/B] contendría la palabra introducida y[B] tam [/B]el número de caracteres Saludos[/QUOTE] Ya sé una cosa más ;), Gracias a todos y un saludo |
La franja horaria es GMT +2. Ahora son las 03:09. |
Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate