Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
tremendo codigaso ayudantia
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #define MAX 26 #define TOTAL_BASES 4 #define BASES "acgt" struct BaseNitrogenada{ int repeticiones; char letra; }; void procesarDatos(int); struct BaseNitrogenada **crearBasesNitrogenadas(); struct BaseNitrogenada *crearBase(char); void contarRepeticiones(char *, struct BaseNitrogenada **); void mostrar(char *, struct BaseNitrogenada **); void freeBases(struct BaseNitrogenada **); int main() { int rep; scanf("%i", &rep); procesarDatos(rep); return 0; } void procesarDatos(int rep) { printf(" CADENA ADN #A #C #G #T\n"); printf("=============================================\n"); for(int i = 0 ; i < rep ; i++) { char *adn = (char *) malloc(MAX); scanf("%s", adn); struct BaseNitrogenada **bases = crearBasesNitrogenadas(); contarRepeticiones(adn, bases); mostrar(adn, bases); free(adn); freeBases(bases); } } struct BaseNitrogenada **crearBasesNitrogenadas() { struct BaseNitrogenada **bases = (struct BaseNitrogenada **) malloc(sizeof(struct BaseNitrogenada *) * TOTAL_BASES); for(int i = 0 ; i < TOTAL_BASES ; i++) { bases[i] = crearBase(BASES[i]); } return bases; } struct BaseNitrogenada *crearBase(char letra) { struct BaseNitrogenada *base = (struct BaseNitrogenada *) malloc(sizeof(struct BaseNitrogenada)); base->letra = letra; base->repeticiones = 0; return base; } void contarRepeticiones(char *adn, struct BaseNitrogenada **bases) { for(int i = 0 ; i < strlen(adn) ; i++) { for(int j = 0 ; j < TOTAL_BASES ; j++) { if(tolower(adn[i]) == bases[j]->letra) { bases[j]->repeticiones += 1; break; } } } } void mostrar(char *adn, struct BaseNitrogenada **bases) { printf("%25s", adn); for(int i = 0 ; i < TOTAL_BASES ; i++) { if(i == 0) { printf("%4i", bases[i]->repeticiones); } else { printf("%5i", bases[i]->repeticiones); } } printf("\n"); } void freeBases(struct BaseNitrogenada **bases) { for(int i = 0 ; i < TOTAL_BASES ; i++) { free(bases[i]); } free(bases); }
run
|
edit
|
history
|
help
0
more_than_one_break_in_loop
bitmask2
Busqueda binaria version iterativa
A_141212_IntercambiarValores
19BCE0666.C
FahrenheitToCelcius
SUMALE UNO
E
Finding the second largets value v0.5
What happens if you do a system() in rextester...