Como retornar valores em float [RESOLVIDO]

1. Como retornar valores em float [RESOLVIDO]

Rafael
rafareis021

(usa Slackware)

Enviado em 18/05/2008 - 13:59h

Amigos to desenvolvendo um programa para calcular minhas horas extras, mais tenho que retornar para a funcao main um
numero quebrado Ex: 612.42, o 612 ele retorna mais o 42 centavos ele nao retorna como faço, eu to fazendo assim mais nao ta dando certo.

#include <stdio.h>
teste(){
float x;
x=612.42;
printf("funcao teste %f\n",x);
return x;
}
int main(){
float a;
float z;
z=teste(a);
printf("fuçao main%f\n",z);

}


Acho que to errando alguma coisa, muito obrigado para quem poder me ajudar, falou


  


2. MELHOR RESPOSTA

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 19/05/2008 - 09:27h

sancler: o VOL, infelizmente, suprime as identações de tudo que for postado. :-(

Tu precisa, como já foi dito, usar float para retorno. Eu usaria double, pois tem maior precisão (float tem apenas 4 bytes!!)

Mas ainda, CUIDADO com as divisões. Seria um erro uma função deste tipo:

double media (int x, int y)
{
double m;

m = (x+y) / 2;
return(m);
}

int main()
{
double m1;

m1 = media(10, 3);

}

No caso m1 tera apenas 6 e não 6.5!!

Qual o problema?

Divisão de dois inteiros resulta sempre em dois inteiros (veja meu artigo sobre floats).

Solução: (uma delas)


double media (int x, int y)
{
double m;

m = (x+y);
m = m / 2;
return(m);
}
Simples, mas agora ao dividir por 2, m é double. Antes tinha x+x (int) divide por 2 (outro int), resposta int...


3. Re: Como retornar valores em float [RESOLVIDO]

Sancler Santana Camargos
sancler

(usa Ubuntu)

Enviado em 18/05/2008 - 15:39h

int funcao (char)

a primeira parte ( INT ) ta dizendo que a função vai retornar um inteiro.

a segunda parte (FUNCAO) nome da funcao.

terceira parte (CHAR) dizendo que a funcao vai receber um char.

no seu caso, no lugar do char coloque float.


espero ter ajudado.


4. Identaçao

Sancler Santana Camargos
sancler

(usa Ubuntu)

Enviado em 18/05/2008 - 15:45h

Amigo, tente programar com identaçao!!!!!
programador deve programar para si e para o proximo, entao quanto mais legivel melhor.

identaçao é vc colocar cada coisa no seu escopo,
ex. (codigo nao identado)
main()
{
if
{
funcao();
funcao2();
}
}
o mesmo codigo identado
main()
{
if
{
funcao();
funcao2();
}
}

ou seja, ficou mais legivel para saber qual chave é do if, quais comando estao dentro do escopo (corpo) do if.

bons estudos.


5. tipo de retorno

Marcelo Utikawa da Fonseca
utikawa

(usa Ubuntu)

Enviado em 18/05/2008 - 17:19h

O problema é que a sua função teste não possui um tipo de retorno definido então o compilador adotou o int. Declare a função teste da seguinte forma:

float teste()

Outra coisa: realmente é importante identar o código mas, conforme deu para perceber no exemplo acima, o VoL formata o texto digitado e portanto aqui não dá para colocar o código identado.


6. Re: Como retornar valores em float [RESOLVIDO]

Sancler Santana Camargos
sancler

(usa Ubuntu)

Enviado em 19/05/2008 - 09:54h

Vlw pela dica ai elgio, nao sabia que era suprimida!!!!!!!

e uns topicos acima me referi a void como sendo relativo a "nada" "vazio". O pessoal pediu atençao sobre void nao ser nada, e isso é correto.

Tentei explicar de uma forma mais didatica e acabei coomentendo esse erro.


7. Re: Como retornar valores em float [RESOLVIDO]

Rafael
rafareis021

(usa Slackware)

Enviado em 20/05/2008 - 20:26h

Desculpa a demora, e que trabalho e nao tenho muito tempo pra entrar no site muito obrigado pelas resposta, eu vou tentar fazer o que vcs disseram, depois eu posto se consegui, novamente obrigado






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts