[ Foro de C ]
Tengo un proyecto de programacion en c, el codigo ya funciona correctamente, solo me falta cumplir una condicion, que es para que cuando se introduzca un valor distinto a A, G, C o T, marque un error y termine el programa, no se como puedo hacerlo, ya intente usando un default, pero me marca error aunque use los caracteres permitidos, que puedo hacer?
#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <ctype.h>
#define MAX 1000
char nt[MAX+1]; /*Contando caracter '\0' */
int main(void)
{
int i, lon, A=0,C=0,G=0,T=0;
setlocale(LC_ALL,"");
puts("Introducir cadena de ADN:");
fgets(nt, MAX+1, stdin);
lon=strlen(nt);
for(i=0; i<lon; ++i)
nt[i]= toupper(nt[i]);
for(i=0; i<lon; ++i){
switch(nt[i]){
case'A': A++;
break;
case'C': C++;
break;
case'G': G++;
break;
case'T': T++;
break;
}
}
printf("%d %d %d %d", A,C,G,T);
return 0;
}
pareceser que strlen si cuenta el caracter de final de string
haz una prueba y veras que ese caracter es el que te esta mareando
no entiendo para que una variable global, cuando su uso debe ser restringido todo lo posible
buena suerte ;-)
Casi lo tienes. Sólo te falta comprobar si A+C+G+T=lon
Si ocurre eso, no hay caracteres no válidos.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)