C/Visual C - no encuentro fallo ?

 
Vista:

no encuentro fallo ?

Publicado por marc (2 intervenciones) el 09/02/2006 15:28:54
Hola, tengo una duda en este programa:

#include <stdio.h>

int sous(int sou)
{

if (sou<=800)
{
sou=sou+(20*sou);

}

else if (sou>=801 && sou<=1000)
{
sou=sou+(10*sou);
}

else if (sou>=1001 && sou<=2000)
{
sou=sou+(5*sou);
}

else (sou>=2001 && sou<=3000) <<<<< lleva aquí un ";" ?
{
sou=sou+(2*sou);
}

return sou;
}

main()
{
int souvell;
printf("Introdueix el sou vell ");
scanf("%d",&souvell);
sous(souvell);

printf("Sou nou %d",souvell);
}

No me funciona del todo

Esta bien la fucnion y el retorno de valor ?

saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:no encuentro fallo ?

Publicado por kero (45 intervenciones) el 09/02/2006 23:39:44
La solucion es esta:

#include <stdio.h>

int sous(int sou) {

if (sou<=800) {
sou=sou+(20*sou);

}else if (sou>=801 && sou<=1000){
sou=sou+(10*sou);

}else if (sou>=1001 && sou<=2000){
sou=sou+(5*sou);

}else if (sou>=2001 && sou<=3000){ /*aca le cambie el else por otro
else if */
sou=sou+(2*sou);
}
return sou;
}

int main(){
int souvell;
printf("Introdueix el sou vell ");
scanf("%d",&souvell);
souvell = sous(souvell); /* aca como tu funcion retorna un valor entonces se lo tenes que asignar si o si a una variable */

printf("Sou nou %d",souvell);
return(0);
}

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no encuentro fallo ?

Publicado por [email protected] (1 intervención) el 10/02/2006 00:04:25
hola, eso del if: no hace falta acabar siempre con un else ?

dices: se lo tenes que asignar si o si a una variable ?

no me retorna valor en la funcion el lio lo tenia alli
el return 0, si lo saco funciona bien, hace falta ?

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no encuentro fallo ?

Publicado por kero (45 intervenciones) el 10/02/2006 03:03:33
Bien vamos por partes. Primero no no hace falta acabar siempre con un else ya que else if es una especie de else. Segundo si se lo tenes que asignar a una variable porque si no no te toma el valor de retorno la funcion, o sea si vos le pasas como argumento a una funcion un dato y la funcion te devuelve ese dato cambiado en algun lado tenes que guardarlo por eso se lo asignas a una variable. Tercero lo del return (0) se lo podes sacar pero es una cuestion de buen estilo de programacion ponerle al main un return(0) ya que si compilas el programa con los flags necesarios te tira un warning.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar