/* Una solución al examen parcial de Fundamentos de Informática de Febrero de 2008 */ #include <stdio.h> #include <math.h> void convierte_a_b10(int &numero); void escribe_continente(int numero); int hay_ataque(); int main() { int numero; char seguir; do{ printf("\nIntroduce ORDEN-NUMERO: "); if (hay_ataque()) { scanf("%d",&numero); convierte_a_b10(numero); printf("El ataque sera en "); escribe_continente(numero); } else printf("\nNo hay ataque"); printf("\nOtro (s/n)? "); fflush(stdin); scanf("%c",&seguir); }while(seguir=='s'); return 0; } void convierte_a_b10(int &numero) { int b10=0,pos=0,cifra,num; num=numero; while(num>0) { cifra=num%10; num/=10; b10+=cifra*(int)pow(4,pos); pos++; } numero=b10; } void escribe_continente(int numero) { if (numero>=0 && numero <=199) printf("Europa"); else if (numero>=200 && numero <=399) printf("Asia"); else if (numero>=400 && numero <=599) printf("Africa"); else if (numero>=600 && numero <=799) printf("Oceania"); else if (numero>=800 && numero <=1023) printf("America"); } int hay_ataque() { char letra; int ataque=0; scanf(" %c",&letra); while(letra!='-') { if (letra=='a') { scanf("%c",&letra); if (letra=='t') { scanf("%c",&letra); if (letra=='a') { scanf("%c",&letra); if (letra=='c') { ataque=1; scanf("%c",&letra); } } } } else scanf("%c",&letra); } return ataque; }