Ir ao conteúdo
  • Cadastre-se

Utilização de variáveis de uma função para outra


Posts recomendados

Olá pessoal, boa noite a todos.
 

Sou iniciante em C++ e tenho uma dúvida. Em c++ não é possível declarar uma função dentro da outra, isso eu já entendi. Porém gostaria de saber se a função Main() consegue puxar o valor de uma variável que está em uma outra função X.

Por exemplo, tenho uma função que vai executar um cálculo matemático:

float f(float x){
   return pow(x,2)-raiz;
   }

e preciso que na main o usuário digite um valor para a variável raiz, para que o calculo seja executado após serem apresentadas novas informações:

int main() {
float a, b, pre, media, func, raiz, funa, funb, erro;
int it, aux; 
aux =0;
   
printf("Digite a raiz: \n");
   scanf("%i",&raiz);

Há como eu fazer isso? pois quando tento compilar o programa é apresentado um erro dizendo que a variável raiz não foi declarada na função "f". 

O código em si é um pouco extenso para ser postado por completo, sendo assim só mostrei essas partes, mas o algoritmo total seria para realizar o cálculo do "Teorema de Bolzano".

Caso seja necessário para o entendimento geral eu posto o código completo =) . 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Você já está passando um valor float para a função f, basta adicionar outro:

 

float f(float x, float raiz){
    return pow(x,2)-raiz;
}

E no main você chama a função passando os dois parâmetros, exs:

float x, raiz;

resultado1 = f(2.5, 1.3);

x = 3.2;
raiz = 2.7;
rasultado2 = f(x, raiz);

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá isrnick, testei a sua dica, porém fiz um teste:


Logo após pedir para o usuário inserir um valor para a variável raiz, usei um scanf para mostrar o valor, para ver se realmente este estava sendo atribuído.
O resultado é que o console sempre me retorna o valor de raiz = 0 ... O quê isso pode significar ?
 

float f(float x, float raiz){
	
   return pow(x,2)-raiz;
   }
   
int main() {

float x, raiz;
float a, b, pre, media, func, funa, funb, erro;
int it, aux; 
aux =0;
   
printf("Digite a raiz: \n");
   scanf("%i",&raiz);
printf("raiz: %f \n", raiz);

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!