Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
pr0zin

Fraçao em C

Recommended Posts

pr0zin

Boa tarde, eu gostava de saber como retornar um fraçao sem a simplificar, por ex: a=4, b =2 eu qeria fazer return a/b e o resultado fosse: 4/2 e nao 2.

Alguem sabe ajudar?

Share this post


Link to post
Share on other sites
pr0zin

no exercicio tenho: A fraçao(valor de retorno da função).... se retornar como double temos penalizaçao de 1.5val.

O tipo de resultado deve corresponder a struct frac { int p,q;}

Share this post


Link to post
Share on other sites
HappyHippyHippo
struct frac xpto()
{
 struct frac f;

 // faz o que tiveres a fazer

 return f;
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
pr0zin

mas eu nao percebo como é qe assim tou a retornar uma fraçao... por ex, leio o &f.p e o &f.q, depois nao tenho qe fazer por ex double fin=f.p/f.q? e o return nao deveria ser fin? nao estou a compreender bem este exercicio

Share this post


Link to post
Share on other sites
HappyHippyHippo

pelo que parece (porque não nos deste o privilégio de saber o enunciado) o pretendido é saber os componentes da fracção.

pensa assim : consegues escrever o número completo de 4/3 ? não, o computador também não.

deverá ser por isso que se pretende que retornes o numerador e o denominador (presumo que sejam esses os valores a serem retornados)


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
pr0zin

"Sem usar variáveis indexadas, implemente uma função para ler da entrada padrão uma sequência de inteiros terminada por 0 e determinar a fracção dos que são múltiplos de k e não diferem de n mais do que d unidades, sendo k, d e n passados como argumentos na chamada da função e do tipo int. Por exemplo, para -6 4 -7 3 8 -5 -9 12 5 8 10 -14 0, a fracção dos que não diferem de 9 mais do que 3 unidades e são múltiplos de -2 seria 4/12, ou seja 1/3. Admita que a sequência tem algum elemento além do terminador 0, e que d é não negativo, e k pode ser 0. A fracção (valor de retorno da função) deve ser expressa por uma fracção irredutível p=q, em que q pode ser 1 se p=q=0 ou p=q=1. O tipo do resultado deve corresponder a struct frac {int p, q;}."

edit: eu fiz isto agora amigo, se for como tu me disseste é algo deste genero?

struct frac func (int k, int d, int n) {
frac f;
int num;
f.p=0;
f.q=0;
scanf("%d", &num);
	f.p++;
while(num!=0) {
	if(num%k==0)
		if((num >= (n-d)) || (num <=(n+d)))
			f.p+=1;
scanf("%d", &num);

Edited by Rui Carlos
Copiado do pastebin

Share this post


Link to post
Share on other sites
HappyHippyHippo

eu nem vou discutir o que tens de fazer dentro da função, porque sinceramente, nem percebi pelo exemplo dado.

tens que retornar p e q, então basta usar o código que apresentei acima.

ps : com a lista de argumentos do enunciado, claro.

Edited by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.