Hack x Crack - Comunidad de Seguridad informática
Programación => C / C++ => Mensaje iniciado por: $i$tr0 en Junio 13, 2013, 08:42:39 pm
-
hola foro hice este programita para ver que tal cualquier consejo para mejorarlo es bien recibido
gracias
#include<stdio.h>
//definicion de funciones
void listaEquipos(int,int,int[], int[],int[]);
void imprimirFecha(int , int [], int [],int );
void intercambio(int, int[],int[]);
void fijarEquipos(int, int[],int[]);
void fechasPares(int, int[],int[]);
void fechasImpares(int, int[],int[]);
int main(){
int num,modulo,partidosFecha,fechas,fecha;
printf("ingrese el numero de equipos : ");
scanf("%d",&num);
while(num<=2){
system("clear");
printf("El fixture debe realizarse para tres equipos o mas\n");
printf("ingrese el numero de equipos : ");
scanf("%d",&num);
}
modulo=num % 2;
if(modulo!=0){
num=num+1;
}
partidosFecha=num/2;
fechas=num-1;
int numEquipos[num];
int locales[partidosFecha];
int visitantes[partidosFecha];
system("clear");
fecha=1;
while( fecha<=fechas){
modulo=fecha%2;
if(fecha==1){
listaEquipos(num,partidosFecha,numEquipos,locales,visitantes);
imprimirFecha(partidosFecha,locales, visitantes,fecha);
}
if(fecha>1 && modulo ==0){
intercambio(partidosFecha,locales,visitantes);
fechasPares(partidosFecha,locales,visitantes);
imprimirFecha(partidosFecha,locales, visitantes,fecha);
}
if(fecha>1 && modulo !=0){
intercambio(partidosFecha,locales,visitantes);
fijarEquipos(partidosFecha,locales,visitantes);
fechasImpares(partidosFecha,locales,visitantes);
imprimirFecha(partidosFecha,locales, visitantes,fecha);
}
fecha++;
}
printf("\n");
return 0;
}
//**funciones
void listaEquipos(int num, int partidosFecha,int numEquipos[partidosFecha], int locales[partidosFecha],int visitantes[partidosFecha]){
int i;
for(i=0; i<num;i++){
numEquipos[i]=i+1;
}
for(i=0; i <partidosFecha;i++){
locales[i]=numEquipos[i];
visitantes[i]=numEquipos[i+partidosFecha];
}
}
void intercambio(int partidosFecha, int locales[partidosFecha], int visitantes[partidosFecha] ){
int i, aux;
for(i=0; i<partidosFecha; i++){
aux=locales[i];
locales[i]=visitantes[i];
visitantes[i]=aux;
}
}
void fijarEquipos(int partidosFecha, int locales[partidosFecha], int visitantes[partidosFecha] ){
int i ,aux;
for(i=partidosFecha; i==partidosFecha; i--){
aux=locales[i-1];
locales[i-1]=visitantes[i-2],
visitantes[i-2]=aux;
}
}
void fechasPares(int partidosFecha, int locales[],int visitantes[]){
int i,j,aux;
for(i=1; i<partidosFecha; i++){
for(j=0; j<partidosFecha-i; j++ ){
aux=locales[j],
locales[j]=locales[j+1],
locales[j+1]=aux;
}
}
for(i=2; i<partidosFecha; i++){
for(j=0; j<partidosFecha-i; j++ ){
aux=visitantes[j],
visitantes[j]=visitantes[j+1],
visitantes[j+1]=aux;
}
}
}
void fechasImpares(int partidosFecha, int locales[],int visitantes[]){
int i,j,aux;
for(i=1; i<partidosFecha-1; i++){
for(j=0; j<partidosFecha-i; j++ ){
aux=locales[j],
locales[j]=locales[j+1],
locales[j+1]=aux;
}
}
for(i=2; i<partidosFecha; i++){
for(j=0; j<partidosFecha-i; j++ ){
aux=visitantes[j],
visitantes[j]=visitantes[j+1],
visitantes[j+1]=aux;
}
}
}
void imprimirFecha(int partidosFecha, int locales[partidosFecha], int visitantes[partidosFecha],int fecha ){
int i;
printf(" Fecha %d\n",fecha);
for(i=0; i<partidosFecha; i++){
printf("[%d",locales[i]);
printf("] vs [");
printf("%d]",visitantes[i]);
printf("\n");
}
printf("\n");
}
-
Buen aporte. ¿Qué es lo que supone que hace exactamente?
Saludos
-
es un fixture para hacer torneos round robin o todos contra todos
-
es un fixture para hacer torneos round robin o todos contra todos
Supuse que era para algo similar.
Gracias
-
bastante útil, se agradece
-
Se agradecería que al inicio del programa se ponga una pequeña cabecera con la descripción, autor, parámetros de entrada/salida, para así saber lo que hace ;).
-
Se agradecería que en algún sitio hubiera algún comentario, para así saber lo que hace ;).
FTFY