|
Mostrar Mensajes
|
Páginas: [1]
|
2
|
Programación / Programación C/C++ / Re: Vectores y matrices en funciones en C
|
en: 13 Enero 2019, 11:14 am
|
La cosa es que yo tengo este código(sigo abajo del código): #include <stdio.h> #include <time.h> #include <stdlib.h> #include <conio.h> int controladorCarton1=0, final=0, bolas=0, vectorcarton1 [20], sacadas [100], numeroscarton1[100]; int contador1=0, numerosbolas[100], controladorBola=0; char x=0x58; void ImprimoPrincipio(void){ printf("----------------------------\n"); printf("Juego del bingo simplificado\n"); printf("----------------------------\n"); }
int GeneradorNumero(void){ //Genero un numero aleatorio int num;
num = rand() % 100; return num; } int Bola(void){ int y=0, z, v; if(controladorBola==0){ for(int x=0;x<100;x++){ //creo un vector con todos los numeros del 1 al 100 numerosbolas[y]=x+1; y++; controladorBola=1; } }if(controladorBola==1){ do{ z=GeneradorNumero(); }while(numerosbolas[z]==0); v=numerosbolas[z]; numerosbolas[z]=0;
} return v; }
void Carton1(void){ int y=0, z, v, bola; if(controladorCarton1==0){ printf("Carton 1: \n"); for(int x=0;x<100;x++){ //creo un vector con todos los numeros del 1 al 100 numeroscarton1[y]=x+1; y++; } for(int u=0;u<20;u++){ z=GeneradorNumero();
do{ z=GeneradorNumero(); }while(numeroscarton1[z]==0);
vectorcarton1[u]=numeroscarton1[z]; numeroscarton1[z]=0; printf("%d",vectorcarton1[u]); v=vectorcarton1[u]/10; if(v<1){ printf(" "); }else{ printf(" "); } if(u==4||u==9||u==14||u==19){ printf("\n");
} } }else{ printf("Bolas: "); bola=Bola(); sacadas[bolas]=bola; for(int a=0;a<=bolas;a++){ printf("%d ",sacadas[a]); } bolas++; printf("\nCarton 1:\n"); for(int i=0;i<20;i++){ if(vectorcarton1[i]==bola){ vectorcarton1[i]=x; contador1=contador1+1;
} } for(int j=0;j<20;j++){ if((int(vectorcarton1[j])==88)){ printf("%c",vectorcarton1[j]); printf(" "); if(j==4||j==9||j==14||j==19){ printf("\n");
} }else{ printf("%d",vectorcarton1[j]); v=vectorcarton1[j]/10; if(v<1){ printf(" "); }else{ printf(" "); }
if(j==4||j==9||j==14||j==19){ printf("\n");
} } } if(contador1==20){ printf("Gana el jugador 1\n"); final=1; return;
} }
controladorCarton1=1; }
int main(void){ srand(time(NULL)); ImprimoPrincipio(); Carton1(); printf("\n"); getchar(); do{ system("cls"); ImprimoPrincipio(); Carton1(); getchar(); }while(final==0); getchar(); return 0;
}
Me acabo de dar cuenta que no se pueden utilizar variables globales, y no se como puedo utilzar por ejemplo: el vector numerosbolas[100], en la función Carton1, si no fuera por esa variable global que he creado, no sabría utilizarlo en otra función como Carton1 para poder leer ese vector, editarlo y guardarlo, no se si me he explicado bien.
|
|
|
3
|
Programación / Programación C/C++ / Vectores y matrices en funciones en C
|
en: 13 Enero 2019, 09:04 am
|
Buenos días, mi duda es la siguiente: Al realizar un programa con diferentes funciones();, en el que no se puede utilizar variables globales, necesito utilizar un vector/matriz, que necesito ir editando y guardando en diferentes funciones, ¿los podría pasar a otra función() de alguna manera?, o ¿tendría que hacerlo todo en una misma función?, o ¿alguna otra idea?, gracias.
|
|
|
9
|
Programación / Programación C/C++ / Corrección ejercicio en C de un bingo
|
en: 11 Enero 2019, 11:47 am
|
Buenas, les dejo por aqui mi código, me estoy volviendo loco intentando ver lo que he hecho mal, no encuentro el error, me podéis ayudar??. El enunciado del problema sería el siguiente: En este ejercicio implementaremos el juego del bingo simplificado. Habrá dos jugadores, con sus respectivos cartones compuestos por 20 números aleatorios del 1 al 100 (todos los números de un cartón han de ser forzosamente distintos). Por otro lado, se irá generando una secuencia de números aleatorios comprendidos también entre 1 y 100, que representan las bolas que van saliendo del bombo (esta secuencia tampoco podrá tener números repetidos). La mecánica del programa será la siguiente: en cada iteración, mostraremos los números que han ido saliendo del bombo hasta el momento, así como los dos cartones, donde habremos tachado (en vez del número saldrá una X) los números que ya hayan salido. Esperaremos entonces a que el usuario pulse una tecla y a continuación sacaremos una nueva bola del bombo, actualizaremos los cartones con la nueva bola y volverá a aparecer toda la información (lista con las bolas que han salido y cartones actualizados). El programa terminará cuando alguno de los dos cartones se complete, con lo que el jugador asociado a dicho cartón ganará. #include <stdio.h> #include <time.h> #include <stdlib.h> #include <conio.h> int controladorCarton1=0, final=0, bolas=0; void ImprimoPrincipio(void){ printf("----------------------------\n"); printf("Juego del bingo simplificado\n"); printf("----------------------------\n"); }
int GeneradorNumero(void){ //Genero un numero aleatorio int num;
num = rand() % 100; return num; } int Bola(void){ int numerosbolas[100], sacadas[100], y=0, z, v; printf("Bolas: "); for(int x=0;x<100;x++){ //creo un vector con todos los numeros del 1 al 100 numerosbolas[y]=x+1; y++; }
do{ z=GeneradorNumero(); }while(numerosbolas[z]==0); v=numerosbolas[z]; numerosbolas[z]=0; return v; }
void Carton1(void){ int numeroscarton1[100], y=0, z, vectorcarton1 [20], v, bola, contador1, sacadas[100]; printf("Carton 1: \n"); if(controladorCarton1==0){ for(int x=0;x<100;x++){ //creo un vector con todos los numeros del 1 al 100 numeroscarton1[y]=x+1; y++; } for(int u=0;u<20;u++){ z=GeneradorNumero();
do{ z=GeneradorNumero(); }while(numeroscarton1[z]==0);
vectorcarton1[u]=numeroscarton1[z]; numeroscarton1[z]=0; printf("%d",vectorcarton1[u]); v=vectorcarton1[u]/10; if(v<1){ printf(" "); }else{ printf(" "); } if(u==4||u==9||u==14||u==19){ printf("\n");
} } }else{ bola=Bola(); sacadas[bolas]=bola; bolas++; for(int i=0;i<20;i++){ if(vectorcarton1[i]==bola){ vectorcarton1[i]='X'; contador1++; } for(int j=0;j<20;j++){ printf("%d",vectorcarton1[j]); v=vectorcarton1[j]/10; if(v<1){ printf(" "); }else{ printf(" "); } if(j==4||j==9||j==14||j==19){ printf("\n");
} } if(contador1==20){ printf("Gana el jugador 1\n"); final=1; return;
} }
} controladorCarton1=1; }
void Carton2 (void){ int numeroscarton2[100], y=0, z, vectorcarton2 [20], v; printf("Carton 2: \n"); for(int x=0;x<100;x++){ //creo un vector con todos los numeros del 1 al 100 numeroscarton2[y]=x+1; y++; } for(int u=0;u<20;u++){ z=GeneradorNumero();
do{ z=GeneradorNumero(); }while(numeroscarton2[z]==0);
vectorcarton2[u]=numeroscarton2[z]; numeroscarton2[z]=0; printf("%d",vectorcarton2[u]); v=vectorcarton2[u]/10; if(v<1){ printf(" "); }else{ printf(" "); } if(u==4||u==9||u==14||u==19){ printf("\n");
} } }
int main(void){ srand(time(NULL)); ImprimoPrincipio(); Carton1(); printf("\n"); Carton2(); getchar(); system("cls"); do{ ImprimoPrincipio(); Carton1(); getchar(); }while(final==0); getchar(); return 0;
}
|
|
|
|
|
|
|