Estoy aprendiendo C a partir de manuales y libros y me he encontrado con un problema en mi programilla. Haber si pueden ayudarme a ver mi error.
El problema creo que reside en el do/while, es una estupidez pero no consigo verla. Al seleccionar la opción A todo funciona bien, introduces unos numeros y consigues la conversión de estos pero una vez finalizada la operación te pide si deseas hacer otra operación más, si pulsas N o n sale del programa y todo perfecto pero si por lo contrario seleccionas s o S (o sea, si que quieres realizar otra operación) sale del programa también.
Otro problema que no entiendo porque sucede es que cuando escojo las opciones en las que se tienen que introducir una frase, no me deja escribir la frase y sale del programa. Por que sucede si hay un break?
A continuación les adjunto el código:
Código C:
Ver original
#include <stdio.h> #include <stdlib.h> float FC(float c); float CF(float h); int main(int argc, char *argv[]) { float c=0.0, h=0.0, transformer1, transformer2; char respuesta,seleccion,frase[50],cadena[100]; int temperatura = -60, i=0,j=0, m, llargada; //do //{ switch(seleccion) { case 'a': case 'A': transformer1= CF(c); transformer2= FC(h); break; case 'b': case 'B': for(temperatura = -60; temperatura <80; temperatura=temperatura+10) { } break; case 'c': case 'C': while(frase[i]!='\0') { if(frase[i]==' ') { } else { } i++; } break; case 'd': case 'D': while(frase[j]!= '\0') { if(frase[j]=' ') { } else { } j++; } break; case 'e': case 'E': for(m=0;m<llargada;m++) if((cadena[m]>='a')&&(cadena[m]<='z')) cadena[m]-=32; break; case 'f': case 'F': break; default: } /*fin de switch*/ /* printf("Quieres realizar otra operación? (S/N)\n"); respuesta=getch(); if((respuesta='N')||(respuesta='n')) { printf("Grácias y hasta otra ocasión\n\n"); getch(); break; } }while((respuesta!='N') || (respuesta!='n')); */ return 0; } float CF(float c) { float f; f=1.8*c+32; return f; } float FC(float f) { float c; c=(f-32)/1.8; return c; }
Grácias por su tiempo!
Saludos!