Porque cuando declaras una variable fuera de toda función (en tu caso "Jugador") y quieres darle un valor inicial este debe ser uno constante como 123 o "alguna cadena" (no puedes utilizar llamadas a función).
Un saludo
Un saludo
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menúpuntero = malloc(N * sizeof *puntero);
Cita de: daniloops en 29 Abril 2014, 19:52 PMme piden ingresar la edad y estado civil de 10 personas pero al poner mi codigo solo me lee la edad y no puedo ingresar el estado civil(c=casado s=soltero) que tengo mal?El problema se debe que la función scanf cuando se utiliza con el especificador "%c" (también ocurre con "%[]") no descarta el espacio blanco. Supongamos que al pedir la edad introduces:
18{ENTER}
printf("ingrese edad \n");
scanf("%d",&edad);
printf("ingrese estado civil \n");
scanf(" %c" /* <== */,&estado);
Cita de: ++c en 28 Abril 2014, 21:47 PMMe gustaría conocer como romper adecuadamente el programa si el primer dígito es 9999 sin mostrar el mensaje " El promedio total es 0.0 "No tienes porque calcular el promedio en cada iteración del bucle, en su lugar debes calcularlo después de este y la condición de salida "x != 9999" nunca se alcanza (si el valor introducido es 9999 el bucle termina antes con la sentencia "break;").
Cualquier indicación para programar más eficientemente se lo agradecería.
#include <stdio.h>
int main(void)
{
int contador = 0, suma = 0, x;
while (1){
printf("Dame un numero, introduce 9999 para salir: ");
fflush(stdout);
if (scanf("%d",&x) != 1 || x == 9999)
break;
else {
suma += x;
contador++;
}
}
/*
** Si el numero de valores (contador) es diferente de cero:
** Calcular el promedio e imprimirlo en la salida estandar
*/
return 0;
}
Cita de: leosansan en 28 Abril 2014, 19:36 PMEl "system("pause>nul")" te crea un fichero null.txt. Mejor usar getchar si lo que quieres es parar el programa.No se crea un archivo (esa es la idea): se redirecciona a nul cuando se desea descartar la salida de un comando.
Cita de: ryan parker en 23 Abril 2014, 05:54 AMAunque en este ultimo codigo no entiendo la linea:No hay problema con esa linea ya una llamada a realloc con su primer argumento igual a NULL tiene el mismo efecto que llamar a malloc: se reserva un bloque de memoria con el tamaño indicado y cuyo contenido es no definido.string temp = realloc(buffer, capacity * sizeof(char));
Por que si buffer comenzo con NULL, al llegar a esta linea como que asignara NULL para temp, y esto a mi entender como que terminaria el programa
p = realloc(NULL, 100); /* mismo efecto que "p = malloc(100);" */
Cita de: vangodp en 23 Abril 2014, 04:44 AM¿Que efecto tiene poner () en (*matriz)?En el caso de una declaración primero se consideran los paréntesis y corchetes (para indicar función y array, respectivamente) y solo después el '*', por ejemplo:
/* Array de <10 elementos de tipo "int *"> */
int *matriz[10];
/* Puntero a <array de 10 elementos de tipo "int"> */
int (*matriz)[10];
Cita de: pedroedlp en 23 Abril 2014, 03:41 AMy asi no me deberia andar?Habría que saber a que te refieres con "andar".
struct moto{
int precio;
int km;
char marca[100];
char descripcion[100];
};
/* ... */
pf = fopen("datos.dat", "w+");
fprintf(pf, "%d\n%d\n", moto1.precio, moto1.km);
fprintf(pf, "%s\n", moto1.marca);
fprintf(pf, "%s\n", moto1.descripcion);
rewind(pf);
fscanf(pf, "%d %d%*c", &moto2.precio, &moto2.km);
fgets(moto2.marca, 100, pf);
fgets(moto2.descripcion, 100, pf);
Cita de: pedroedlp en 22 Abril 2014, 23:54 PMcompilo, creo un archivo, abro el archivo creado y me sale todo raro, con codigos null y no se queEso sucede porque estas utilizando fwrite para escribir los datos en el archivo y esa funcion copia los bytes que los constituyen tal cual (como estan en memoria).