Hola a todos,
Hace poco que he empezado a programar en C y me ha surgido un problema, a ver si alguien me puede ayudar.
He declarado esto en c:
unsigned char nd8;
como variable global, y quiero modificar su valor mediante una función, esta:
void multiples_partidas unsigned char *var_promedio);
en el que var_promedio es la variable global.
en esta función tengo:
quo= 50;
y para modificar la variable global uso
*var_promedio =quo;
pero su valor no se modificar.
Pd: en el compilador no me da ningún error.
Un saludo y gracias de antemano
si la variable es
unsigned char nd8;
entonces lo unico que la modificará es algo tal que cambie su valor... es decir nd8 = algo (ya sea por referencia, puntero, etc) pero donde nd8 sea relacionada, en lo poco que muestras parece que no usas nd8 de nuevo
El codigo completo es este:
char CASELLA_BUIDA = '.';
/* variables globales */
unsigned char nd8, nd9, nd10;
char tablero_barcos[100];
char tablero_disparos[100];
void principal()
{
multiples_partidas(tablero_barcos, tablero_disparos, 8, &nd8 );
multiples_partidas(tablero_barcos, tablero_disparos, 9, &nd9 );
multiples_partidas(tablero_barcos, tablero_disparos, 10, &nd10);
printf("n8: %i\n", &nd8);
printf("n9: %i\n", &nd9);
printf("n10: %i\n", &nd10);
}
void multiples_partidas(char tablero_barcos[], char tablero_disparos[],
unsigned int dim, unsigned char *var_promedio)
{
unsigned int quo, mod;
int num_partidas=0;
int disparos_totales=0;
int error=0;
while(num_partidas<150){
B_inicializa_barcos(tablero_barcos, dim);
inicializa_matriz(tablero_disparos, dim, dim, CASELLA_BUIDA, dim);
disparos_totales=disparos_totales + partida_completa(tablero_disparos, dim);
num_partidas=num_partidas+1;
}
printf("disparos totales: %i\n", disparos_totales);
error=div_mod(disparos_totales, num_partidas, &quo, &mod);
printf("quo: %i\n", quo);
printf("num partidas: %i\n", num_partidas);
printf("error: %i\n", error);
*var_promedio =quo;
}
Lo único que hace el main es llamar a principal();
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
No sabia que los códigos deben ir en etiquetas GeSHi sorry
tampoco doble post... usa el botón modificar
tu problema no está en la algoritmia... está en el uso de los printf... se usan sin & si no,en lugar de imprimir el valor imprimes su dirección
Cita de: engel lex en 23 Mayo 2018, 19:01 PM
tu problema no está en la algoritmia... está en el uso de los printf... se usan sin & si no,en lugar de imprimir el valor imprimes su dirección
Menudo error... que empanamiento.
Muchas gracias por la ayuda