Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

valdir calixto

[Resolvido] Função em c

Recommended Posts

Estou tentando fazer uma função em C, que receba dois valores (ex: a e B) e retorne o maior deles, já tentei isso e não consigui.

 

#include<stdio.h>
#include<stdlib.h>

int maior (float a, float B);

main()

{
	  system("CLS");
	  
	  float a,b;
	  
	  printf("Digite um valor para a");
	  scanf("%f",&a);
	  
	  printf("Digite um valor para b");
	  scanf("%f",&b);
			
	  int maior(float a,float B);
	  
	  system("PAUSE");
	  }
	  
	  int maior(float a, float B);
	  {
		   if (a>b=)
		   return(a);
		   
		   else
		   return(B);
		   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

qnd esta chamando a função errado!

tente assim:

maior(a,b);

Compartilhar este post


Link para o post
Compartilhar em outros sites

qnd esta chamando a função errado!

tente assim:

maior(a,b);

 

da erro daqui para baixo:

 

int maior(float a, float B);

{

if (a>b=)

return(a);

 

else

return(B);

}

 

erro- Linha 25 expected unqualified-id before '{' token

erro - linha 25 expected `,' or `;' before '{' token

Compartilhar este post


Link para o post
Compartilhar em outros sites

você declara a função + fecha ela com ';' antes de abrir chaves!

observe como você fez:

int maior(float a, float b  );
ranca esse ponto e vírgula dai :D

 

e perceba q você ta falando pra sua função retornar um valor inteiro hein!!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

você declara a função + fecha ela com ';' antes de abrir chaves!

observe como você fez:

int maior(float a, float b  );
ranca esse ponto e vírgula dai :D

 

e perceba q você ta falando pra sua função retornar um valor inteiro hein!!

 

[]'s

 

Ok, o unico detalhe é que não tá aparecendo qual é o maior, digito no dos 6 e 5 só que não retorna o maior entre os dois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no programa (no main(){ ) coloque uma variavel para receber o valor da função, algo assim:

//declare float x  no começo do programa.
x = maior (a,b);
printf("O maior valor é %.2f", x);

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

no programa (no main(){ ) coloque uma variavel para receber o valor da função, algo assim:

//declare float x  no começo do programa.
x = maior (a,b);
printf("O maior valor é %.2f", x);

[]'s

---------------------------------------------------------------------------------------------------

 

O código ficou assim:

 

int maior (int a, int B);

 

main()

 

{

system("CLS");

 

int a,B;

float x;

 

printf("Digite um valor para a\n");

scanf("%f",&a);

 

printf("Digite um valor para b\n");

scanf("%f",&B);

 

maior(a,B);

x=maior(a,B);

printf("O maior valor foi %.2f\n",x);

 

system("PAUSE");

}

 

int maior(int a, int B)

{

if (a>B)

return(a);

 

else

return(B);

}

 

Porém quando execulto e coloco um valor para A (ex: 5) e outro para B(ex:4), me retorna um numero grande ex: 1004335,00054.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro vamos padronizar.

Se a funcao recebe dois números inteiros e o retorno é do tipo inteiro, porque x é float?

Declare x como inteiro e faca:

 

printf("O maior valor foi %d\n",x);

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Continua dando a mesma coisa ele não tá retornando o maior entre os dois números digitados e sim um número 100083332,334566

Compartilhar este post


Link para o post
Compartilhar em outros sites

todos os numeros usando são floats entaum faça sua função assim:

float maior (float a, float b  );

--EDIT--

 

Olha fiz aki desse jeito e deu certo:

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

float maior (float a, float b);

main()

{
float a, b;
float x;
printf("Digite um valor para a\n");
scanf("%f",&a);
printf("Digite um valor para b\n");
scanf("%f",&b);
x=maior(a,b);
printf("O maior valor foi %.2f\n",x);
system("pause");
}

float maior(float a, float b)
{
if (a>b)
return(a);
else
return(b);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

todos os numeros usando são floats entaum faça sua função assim:

float maior (float a, float b  );

--EDIT--

 

Olha fiz aki desse jeito e deu certo:

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

float maior (float a, float b);

main()

{
float a, b;
float x;
printf("Digite um valor para a\n");
scanf("%f",&a);
printf("Digite um valor para b\n");
scanf("%f",&b);
x=maior(a,b);
printf("O maior valor foi %.2f\n",x);
system("pause");
}

float maior(float a, float b)
{
if (a>b)
return(a);
else
return(b);
}

 

OK DEU CERTINHO, obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Soh duas dicas para você naum se atrapalhar td fazendo modularizações:

* Observe o tipo de retorno;

* Verifique a passagem de parametros (quais são necessários e como passá-los);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.