Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
c4
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include <stdbool.h> typedef struct { char palabra[31]; char cualesVocalesTiene[6]; bool esMonovocalica; } tipoPalabra; void analizarPalabras(tipoPalabra *vector,size_t totalPalabras){ int i; int j; int corta_a=0,corta_e=0,corta_i=0,corta_o=0,corta_u=0; int mono=0; for(i = 0 ; i < totalPalabras ; i++){ vector[i].cualesVocalesTiene[0]='-'; vector[i].cualesVocalesTiene[1]='-'; vector[i].cualesVocalesTiene[2]='-'; vector[i].cualesVocalesTiene[3]='-'; vector[i].cualesVocalesTiene[4]='-'; vector[i].cualesVocalesTiene[5]='-'; corta_a=0; corta_o=0; corta_e=0; corta_i=0; corta_u=0; int mono=0; for(j = 0 ; j <30 ; j++){ if (vector[i].palabra[j]=='a' && corta_a==0){ vector[i].cualesVocalesTiene[0]='a'; corta_a++; mono++; }else if(vector[i].palabra[j]=='e' && corta_e==0){ vector[i].cualesVocalesTiene[1]='e'; corta_e++; mono++; }else if(vector[i].palabra[j]=='i' && corta_i==0){ vector[i].cualesVocalesTiene[2]='i'; corta_i++; mono++; } if(vector[i].palabra[j]=='o' && corta_o==0){ vector[i].cualesVocalesTiene[3]='o'; corta_o++; mono++; }else if(vector[i].palabra[j]=='u' && corta_u==0){ vector[i].cualesVocalesTiene[4]='u'; corta_u++; mono++; } if (mono==1){ vector[i].esMonovocalica=true; }else{ vector[i].esMonovocalica=false; } } } printf("\n"); printf("\n"); for(i = 0 ; i < totalPalabras-1 ; i++){ if(vector[i].esMonovocalica){ printf("%s - ",vector[i].palabra); for(j=0 ; j < 6; j++){ if (vector[i].cualesVocalesTiene[j]!='-'){ printf("%c",vector[i].cualesVocalesTiene[j]); } } printf("\n"); } else{ printf("NO SE ENCONTRARON PALABRAS MONOVOCALICAS\n"); break; } } } void mostrarVectorPalabras(tipoPalabra * vector,size_t Palabras){ int i=0; printf("VECTOR PALABRAS DIFERENTES = ["); for(i = 0 ; i < Palabras ; i++){ if(strcmp(vector[i+1].palabra,"fin")==0){ break; }else{ printf("%s, ",vector[i].palabra); } } printf("%s",vector[i].palabra); printf("]"); printf("\n"); printf("\n"); printf("LISTA DE PALABRAS MONOVOCALICAS ORDENADAS Y SU VOCAL"); } tipoPalabra *leerPalabrasPoblarVectorSR(size_t * a){ int i=0; int j=1; int indice=0; int k; tipoPalabra *respuesta = NULL; respuesta = malloc(sizeof(tipoPalabra)); tipoPalabra *respuesta_final = NULL; respuesta_final = malloc(sizeof(tipoPalabra)); do{ scanf("%s", respuesta[i].palabra); j++; for (k=0; respuesta[indice].palabra[k] != '\0';k++){ respuesta[indice].palabra[k]=tolower(respuesta[indice].palabra[k]); } respuesta = (tipoPalabra *)realloc(respuesta,sizeof(tipoPalabra)*j); i++; indice++; }while(strcmp(respuesta[i-1].palabra,"fin")!=0); *a=indice; i=0; j=0; int c=0; int aviso=0; respuesta_final=(tipoPalabra *)realloc(respuesta_final,sizeof(tipoPalabra)*1*indice); for(i = 0; i < indice; ++i){ for(j = 0; j < indice; ++j){ aviso=strcmp(respuesta[i].palabra,respuesta_final[j].palabra); if (aviso!=0){ strcpy(respuesta_final[c].palabra,respuesta[i].palabra); c++; } break; } j++; } *a=c; return respuesta_final; } int comparar(const void * , const void *); int main() { tipoPalabra *vector = NULL; size_t totalPalabras = 0; int i =0; vector = leerPalabrasPoblarVectorSR(&totalPalabras); /* for(i ; i<=totalPalabras ; i++){ printf("%s\n",vector[i].palabra); } printf("\n"); printf("%d\n", totalPalabras); printf("\n"); printf("\n");*/ if (vector == NULL) return 1; mostrarVectorPalabras(vector,totalPalabras); analizarPalabras(vector,totalPalabras); qsort(vector,totalPalabras,sizeof(tipoPalabra),comparar); size_t contador = mostrarContarMonovocalicas(vector,totalPalabras); if (contador > 0) { analizarMonovocalicasFormarFrases(vector,totalPalabras); } return 0; } int comparar(const void *base , const void *elemento) { tipoPalabra *ptrBase = (tipoPalabra *) base ; tipoPalabra *ptrElemento = (tipoPalabra *) elemento; if(strcmp(ptrBase->palabra,ptrElemento->palabra) > 0) return 1; else return 0; } void analizarMonovocalicasFormarFrases(tipoPalabra *vector, int totalPalabras) { bool esMonovocalica(tipoPalabra *, int); void imprimirFrase(tipoPalabra *,char *,int , int ); bool sonMonoDiferentes(tipoPalabra *, int ); if(esMonovocalica(vector,totalPalabras)){ printf("FRASE INICIAL FORMADA : "); for(int i = 0 ; i < totalPalabras ; i++){ printf("%s ",vector[i].palabra); } printf("\n"); printf("JUEGO DE VOCALES\n"); printf("================\n"); char vocales[6] = {'a','e','i','o','u'}; for(int i = 0 ; i < strlen(vocales) ; i++){ imprimirFrase(vector,vocales,i,totalPalabras); } }else{ if (sonMonoDiferentes(vector,totalPalabras)) printf("TODAS LAS PALABRAS SON MONOVOCALICAS PERO CON DIFERENTES VOCALES"); else printf("NO TODAS LAS PALABRAS SON MONOVOCALICAS"); } } bool esMonovocalica(tipoPalabra *vector, int totalPalabras) { char buscarVocal(tipoPalabra *); char vocalAcomparar = buscarVocal(vector); for(int i = 0 ; i < totalPalabras ; i++){ for(int j = 0 ; j < strlen(vector[i].palabra) ; j++){ if(tolower(vector[i].palabra[j]) == 'a' || tolower(vector[i].palabra[j]) == 'e' || tolower(vector[i].palabra[j]) == 'i' || tolower(vector[i].palabra[j]) == 'o' || tolower(vector[i].palabra[j]) == 'u'){ if(tolower(vector[i].palabra[j]) != vocalAcomparar ) return false; } } } return true; } char buscarVocal(tipoPalabra *vector) { char vocales[6] = {'a','e','i','o','u'}; for(int i = 0 ; i < strlen(vector[0].palabra) ; i++){ for(int j = 0 ; j < strlen(vocales) ; j++){ if(tolower(vector[0].palabra[i]) == vocales[j]){ char vocal = vocales[j]; return vocal; } } } return 0; } void imprimirFrase(tipoPalabra *vector,char *vocales,int poscision, int totalPalabras) { for(int i = 0 ; i < totalPalabras ; i++){ for(int j = 0 ; j < strlen(vector[i].palabra) ; j++){ if(tolower(vector[i].palabra[j]) == 'a' || tolower(vector[i].palabra[j]) == 'e' || tolower(vector[i].palabra[j]) == 'i' || tolower(vector[i].palabra[j]) == 'o' || tolower(vector[i].palabra[j]) == 'u'){ vector[i].palabra[j] = vocales[poscision]; } } } for(int i = 0 ; i < totalPalabras ; i++){ printf("%s ",vector[i].palabra); } printf("\n"); } bool sonMonoDiferentes(tipoPalabra *vector, int totalPalabras) { char buscarVocalPorPalabra(tipoPalabra *, int ); for(int i = 0 ; i < totalPalabras ; i++){ char vocalAcomparar = buscarVocalPorPalabra(vector,i); for(int j = 0 ; j < strlen(vector[i].palabra) ; j++){ if(tolower(vector[i].palabra[j]) == 'a' || tolower(vector[i].palabra[j]) == 'e' || tolower(vector[i].palabra[j]) == 'i' || tolower(vector[i].palabra[j]) == 'o' || tolower(vector[i].palabra[j]) == 'u'){ if(tolower(vector[i].palabra[j]) != vocalAcomparar ) return false; } } } return true; } char buscarVocalPorPalabra(tipoPalabra *vector, int posicion) { char vocales[6] = {'a','e','i','o','u'}; for(int i = 0 ; i < strlen(vector[posicion].palabra) ; i++){ for(int j = 0 ; j < strlen(vocales) ; j++){ if(tolower(vector[posicion].palabra[i]) == vocales[j]){ char vocal = vocales[j]; return vocal; } } } return 0; }
run
|
edit
|
history
|
help
0
C_141210_esMayor
ayudantia ejercicio 2 numero nashee
C pattern Rhombus
C(gcc) Local Time and math.h Example
Volume of sphere
18BCE2182 ASSESS_3 Q4
json formatter
SAI_1-3.c
Linked List demo in C
K&R/1_5