Advertisement
Guest User

1.3

a guest
Oct 22nd, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <string.h>
  4.  
  5. typedef struct infoOracion{ //Se declaran los prototipos
  6. char oracionOriginal[1001];
  7. char oracionMinuscula[1001];
  8. int cantCaracteres;
  9. int esPangrama;
  10. } InfoOracion;
  11.  
  12. int main() { //Se declara la funcion principal
  13. char abecedario[26] = "qwertyuiopasdfghjklzxcvbnm"; //Define el abecedario con el que debe comprar
  14. int cantidad, i, j, k=0, contador = 0, menorpangrama=1000;
  15. InfoOracion Oracion [100];
  16.  
  17. scanf("%d", &cantidad); //Se ingresa la cantidad de oraciones a ingresas
  18. getchar();
  19.  
  20. for (i=0; i < cantidad ; i++){
  21. fgets(Oracion[i].oracionOriginal, 1001, stdin);
  22. Oracion[i].cantCaracteres = strlen(Oracion[i].oracionOriginal); //Obtiene el largo de la oracion
  23.  
  24. }
  25.  
  26. for(i=0 ; i < cantidad ; i++){
  27. for(j=0 ; j < Oracion[i].cantCaracteres; j++){
  28. if (isalpha(Oracion[i].oracionOriginal[j])){
  29. Oracion[i].oracionMinuscula[k] = tolower(Oracion[i].oracionOriginal[j]);//Si el caracter que evalua es una letra, entonces dicha letra la convierte en minuscula
  30. k++;
  31. }
  32. }
  33. Oracion[i].cantCaracteres = strlen(Oracion[i].oracionMinuscula); //Se obtiene el largo de la oracion compuesta solo de letras, sin otro tipo de caracteres
  34. k=0;
  35. }
  36. for (i=0 ; i < cantidad ; i++){
  37. Oracion[i].esPangrama = 1; //Se asume que la oracion es pangrama
  38. for (j=0 ; j < 25 ; j++){
  39. if((strchr(Oracion[i].oracionMinuscula , abecedario[j]) == NULL) || (Oracion[i].cantCaracteres<26)){ //Si una letra del abecedario no esta en la oracion, entonces esta no es pangrama
  40. Oracion[i].esPangrama = 0;
  41. }
  42. }
  43. if (Oracion[i].esPangrama){ //Si la oracion es pangrama
  44. if(Oracion[i].cantCaracteres < menorpangrama){
  45. menorpangrama = Oracion[i].cantCaracteres;//Se almacena el valor de la cantidad de letras del pangrama mas pequeño
  46. }
  47. contador++;
  48. }
  49. }
  50. if (contador > 0){ //Si el contador es mayor a cero, quiere decir que al menos encontro 1 pangrama
  51. printf("====================================\n");
  52. printf("PANGRAMAS ENCONTRADOS EN EL CONJUNTO\n");
  53. printf("====================================\n");
  54. for(i=0 ; i < cantidad ; i++){
  55. if(Oracion[i].esPangrama)
  56. printf("%s", Oracion[i].oracionOriginal);//Imprime los pangramas encontrados
  57. }
  58. printf("\n============================================\n");
  59. printf("MEJORES PANGRAMAS ENCONTRADOS EN EL CONJUNTO\n");
  60. printf("CON %d LETRAS EN EL ALFABETO INGLES\n", menorpangrama);
  61. printf("============================================\n");
  62. for(i=0 ; i < cantidad ; i++){
  63. if ((Oracion[i].esPangrama) && (Oracion[i].cantCaracteres == menorpangrama)) //
  64. printf("%s", Oracion[i].oracionOriginal);//Imprime el o los pangramas con la menor cantidad de letras
  65. }
  66.  
  67. }else{ //De lo contrario el diego es homosexual
  68. printf("NO HAY PANGRAMAS EN ESTE CONJUNTO !");
  69. }
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement