Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <stdbool.h>
- /*CREAR 'N' CONJUNTOS (VECTORES), CON 'N' ELEMENTOS EN CADA VECTOR, Y LUEGO LLENARLOS CON CARACTERES QUE NO SE REPITAN EN EL MISMO VECTOR. */
- bool verificador(int i, int j,char **matriz); //prototipo de funcion
- int main ()
- {
- system("color f4");
- char **matriz; //Matriz Dinamica
- int vectores, elementos;
- int num; //Variable que le va a indicar al usuario en qué conjunto está.
- do //Utilizo un 'do-while' para validar el ingreso del tipo de dato.
- {
- system("CLS");
- printf("DIGITE EL NUMERO DE CONJUNTOS QUE DESEA CREAR (DEBE SER MAYOR A '0'): ");
- }
- while(!scanf("%d",&vectores)==1 || vectores==0);
- matriz = (char**)malloc(vectores*sizeof(char*)); //Reservando memoria, para el puntero 'matriz'.
- int CantidadElementos[vectores]; //Éste vector, me crea la cantidad de conjuntos(vectores) que hay en '**matriz',
- // para luego llenarlos con la cantidad de elementos de cada vector.
- for(int i=0; i<vectores; i++)
- {
- num=num+1; //Para indicarle al usuario en qué conjunto está posicionado.
- do
- {
- system("CLS");
- printf("DIGITE LA CANTIDAD DE ELEMENTOS QUE DESEA INGRESAR EN EL CONJUNTO %d (DEBE SER MAYOR A '0'): ",num);
- }
- while(!scanf("%d",&elementos)==1 || elementos==0);
- CantidadElementos[i]=elementos; //Se guarda el numero de elementos del conjunto
- matriz[i]= (char*)malloc(elementos*sizeof(char)); //Reservando memoria, para el vector.
- for(int j=0; j<elementos;j++) //Llenando el vector.
- {
- fflush(stdin); //Liberar Memoria
- do
- {
- system("CLS");
- printf("DIGITE LOS ELEMENTOS QUE QUIERE INGRESAR EN EL CONUNJUNTO %d (NO SE PUEDEN REPETIR): ",num);
- }
- while(!scanf("%c",&matriz[i][j])==1 || verificador(i,j,matriz)==true); //while(Verifica el tipo de dato ó si encuentra
- //el valor repetido en el vector.
- matriz[i][j]=toupper(matriz[i][j]); //Convertir el caracter ingresado en mayúscula.
- }
- }
- num=0; //inicializo nuevamente la variable que le indicara al usuario el numero del conjunto.
- for(int a=0;a<vectores;a++) //Mostrar en Pantalla, caracteres ingresados.
- {
- num=num +1;
- printf("nCONJUNTO Nº %d: n", num);
- for(int j=0;j<CantidadElementos[a];j++)
- {
- printf("| %c | t",matriz[a][j]);
- }
- printf("n");
- }
- free(matriz); //Liberar memoria de la matriz dinamica.
- return 0;
- }
- bool verificador(int i, int j, char **matriz) //Verifica si el caracter ingresado se repite en el mismo vector
- {
- int c;
- if(j==0) //Si 'j' es = 0, se da por entendido que es el primer ciclo de ingreso de datos, por lo tanto no hay
- // numeros anteriores para verificar.
- {
- return false;
- }
- else if(j>0)
- {
- c=j-1; //Le resto '1' para que no compare la misma posicion, sino la anterior.
- }
- for(int columna=c;columna==0;columna--)
- {
- if(matriz[i][columna]==matriz[i][j])
- {
- return true; //si se encuentra el valor, regrese true
- }
- }
- return false; //si no lo encuentra , regrese falso.
- }
Add Comment
Please, Sign In to add comment