[ Foro de C ]
Mi programa trata de calcular la distancia mediante una frecuencia dada este es:
//Programa que calcula la distancia mediante una frecuencia dada (FM)
#include<stdio.h> //encabezado estandar
#include<math.h> //encabezado que contiene prototipos de funciones matematicas
int division ( int distancia, int velocidad, int frecuencia);
int main ()
{
int frec;
int distancia;
int velocidad=300000000;
int frecuencia;
float frecuenciaA=885;
float frecuenciaB=901;
float frecuenciaC=909;
float frecuenciaD=919;
float frecuenciaE=93.1;
float frecuenciaF=94.1;
float frecuenciaG=953;
float frecuenciaH=961;
float frecuenciaI=969;
float frecuenciaJ=977;
float frecuenciaK=985;
float frecuenciaL=993;
float frecuenciaM=1001;
float frecuenciaN=1021;
float frecuenciaO=1031;
float frecuenciaP=1039;
float frecuenciaQ=1049;
float frecuenciaR=1057;
float frecuenciaS=1071;
int Radiouniversidad;
/*int RadioFormula;
int MasFM;
int Xtrema;
int Romantica;
int Candela;
int Amor;
int Factor;
int ExaFM;
int LaCaliente;
int LaComadre;
int Mix;
int Hundred;
int LaZ;
int Imagen;
int Los40Principales;
int ABCRadio;
int PoderFM;
int Magnetica;
*/
/*float velocidad=300000000;
float frecuencia;
float periodo;
float distancia; */
printf("Introduzca la frecuencia de la emisora preferida ");
scanf("%d\n", &frecuencia);
printf("la distancia es:%d\n",distancia);
switch(frec)
{
case 'A':
case 'a':
distancia=division (distancia, velocidad,frecuencia);
printf("%f",distancia);
break;
case 'B':
case 'b':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'C':
case 'c':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'D':
case 'd':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'E':
case 'e':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'F':
case 'f':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'G':
case 'g':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'H':
case 'h':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'I':
case 'i':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'J':
case 'j':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'K':
case 'k':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'L':
case 'l':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'M':
case 'm':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'N':
case 'n':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'O':
case 'o':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'P':
case 'p':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'Q':
case 'q':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
case 'R':
case 'r':
distancia=division (distancia,velocidad,frecuencia);
printf("%f",distancia);
break;
}
if (frecuencia=58);{
printf("Radiouniversidad");
scanf("d\n",Radiouniversidad);
}
system("PAUSE");
return 0;
}
int division ( int distancia, int velocidad, int frecuencia){
distancia =( 300000000/frecuencia);
return(distancia);
}
Veo algunos errores de concepto graves:
- Pides una frecuencia, número entero. Hasta ahí de acuerdo.
- Pero muestras una distancia, número entero, que no tiene valor, de modo que en algunos compiladores te mostrará 0, y en la mayoría te mostrará "basura".
- Luego analizas el valor de "frec"... pero no le has dado valor.
- Además, "frec" es un número entero pero comparas su valor con caracteres individuales.
- El último "scanf" no tiene el símbolo de porcentaje.
- La función "division" recibe un parámetro "velocidad", que no usa, y otro parámetro "distancia", cuyo valor destruye.
(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.)