Alguien podria ayudarme !!!!!
Hola a tod@s!!!
Soy nuevo en esto de la programacion y a la hora de compilar mi primer programa me dice que no tengo errores pero me da una advertencia, que es la siguiente: (warning C4508: 'main' : function should return a value; 'void' return type assumed), alguien podria decirme a que es debido esto???
Por si os fuera de utilidad pongo el codigo fuente del programa que lo que hace es resolver ecuaciones de segundo orden.
#include <stdio.h>
#include <math.h>
main()
{
float a, b, c;
float bb_4ac;
printf ("Introduce los coeficientes del polinomion");
printf ("Termino en X^2: ");
scanf ("%f",&a);
printf ("Termino en X: ");
scanf ("%f",&b);
printf ("Termino independiente: ");
scanf ("%f",&c);
if (a!=0.0){
bb_4ac=(b*b)-(4*a*c);
if (bb_4ac>0.0){
printf ("Dos raices reales distintasn");
printf ("X(1)=%f, X(2)=%fn", (-b-sqrt(bb_4ac))/(2*a), (-b+sqrt(bb_4ac))/(2*a));
}else if (bb_4ac<0.0){
printf ("Dos raices complejas conjugadasn");
printf ("X(1)=%f+%fi, X(2)=%f+%fin", -b/(2*a), (sqrt(-bb_4ac))/(2*a), -b/(2*a), (sqrt(-bb_4ac)/(2*a)));
}else {
printf("Dos raices reales igualesn");
printf ("X(1)=X(2)=%fn", -b/(2*a));
}
}else {
printf ("El polinomio es de primer ordenn");
printf ("X=%fn", -c/b);
}
}
Muchas gracias por adelantado.
Soy nuevo en esto de la programacion y a la hora de compilar mi primer programa me dice que no tengo errores pero me da una advertencia, que es la siguiente: (warning C4508: 'main' : function should return a value; 'void' return type assumed), alguien podria decirme a que es debido esto???
Por si os fuera de utilidad pongo el codigo fuente del programa que lo que hace es resolver ecuaciones de segundo orden.
#include <stdio.h>
#include <math.h>
main()
{
float a, b, c;
float bb_4ac;
printf ("Introduce los coeficientes del polinomion");
printf ("Termino en X^2: ");
scanf ("%f",&a);
printf ("Termino en X: ");
scanf ("%f",&b);
printf ("Termino independiente: ");
scanf ("%f",&c);
if (a!=0.0){
bb_4ac=(b*b)-(4*a*c);
if (bb_4ac>0.0){
printf ("Dos raices reales distintasn");
printf ("X(1)=%f, X(2)=%fn", (-b-sqrt(bb_4ac))/(2*a), (-b+sqrt(bb_4ac))/(2*a));
}else if (bb_4ac<0.0){
printf ("Dos raices complejas conjugadasn");
printf ("X(1)=%f+%fi, X(2)=%f+%fin", -b/(2*a), (sqrt(-bb_4ac))/(2*a), -b/(2*a), (sqrt(-bb_4ac)/(2*a)));
}else {
printf("Dos raices reales igualesn");
printf ("X(1)=X(2)=%fn", -b/(2*a));
}
}else {
printf ("El polinomio es de primer ordenn");
printf ("X=%fn", -c/b);
}
}
Muchas gracias por adelantado.
Cuando se define una funcion sin indicar que tipo debe devolver, el compilador asume por defecto el tipo int.
Es decir ... tu "main()" es igual a "int main()".
De todas formas, la funcion main se debe definir como int ya que devuelve el codigo de error del programa (es decir, si quieres devolver alguno.. ).
La salida deberia de ser un return N; donde N es el numero que quieres indicar de codigo de retorno.. usualmente 0 (no error).
Un main normal seria algo asi como:
int main(int argc,char* argv[])
{
return 0;
}
En argc tendras el numero de parametros pasados en linea de comando y en argv el texto de cada parametro.
Saludos.
Es decir ... tu "main()" es igual a "int main()".
De todas formas, la funcion main se debe definir como int ya que devuelve el codigo de error del programa (es decir, si quieres devolver alguno.. ).
La salida deberia de ser un return N; donde N es el numero que quieres indicar de codigo de retorno.. usualmente 0 (no error).
Un main normal seria algo asi como:
int main(int argc,char* argv[])
{
return 0;
}
En argc tendras el numero de parametros pasados en linea de comando y en argv el texto de cada parametro.
Saludos.
Muchas gracias por tu ayuda, el problema ya esta resuelto y funciona perfectamente.
