Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*@GDreamHack*/
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<math.h>
- int r, a;
- int potencia(int, int);
- void generarPermutacionSust(char [], char [], int, FILE *);
- int potencia(int base, int exponente)
- {
- int resultado = 1, i;
- for(i = 0; i < exponente; i++)
- {
- resultado *= base;
- }
- return resultado;
- }
- /* Permutaciones sin sustitución*/
- void generarPermutacionSust(char elementos[], char actual[], int cantidad, FILE *archivo)
- {
- int i;
- char temp[81];
- if (cantidad == 0)
- {
- /* Imprime la secuencia generada*/
- fprintf(archivo, "%s\n", actual);
- actual="";
- r += 1;
- printf("%d/%d\n", r, a);
- }
- else
- {
- for(i = 0; i<strlen(elementos); i++)
- {
- sprintf(temp, "%s%c", actual, elementos[i]);
- generarPermutacionSust(elementos, temp, cantidad - 1, archivo);
- }
- }
- }
- void main()
- {
- FILE *archivo;
- int cant=0;
- char nombre[81];
- char alfabeto[] = {"1234567890@&aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ .,-:;"};
- system("clear");
- r=0;
- printf("Introduzca la cantidad de caracteres a permutar: ");
- scanf("%d", &cant);
- a=potencia(strlen(alfabeto), cant);
- sprintf(nombre, "Diccionario de %d digitos.venom", cant);
- archivo = fopen(nombre, "w+");
- if (archivo == NULL)
- {
- printf("\nError al crear el fichero. \n\n");
- fclose(archivo);
- }
- else
- {
- fclose(archivo);
- archivo=fopen(nombre, "a");
- if(archivo==NULL)
- {
- printf("\nError al guardar datos en el Diccionario\n");
- fclose(archivo);
- }
- else
- {
- printf("\n\nSe a comenzado a crear el Diccionario... Espere.\n");
- generarPermutacionSust(alfabeto, "", cant, archivo);
- printf("\n\nEl diccionario se a creado correctamente..\n\n");
- }
- fclose(archivo);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment