Ir ao conteúdo

Funções


Brêda

Posts recomendados

Postado

Bom dia, amigos, quem puder me ajudar com essa, agradeceria:

 

Bom, estou com uma certa dificuldade, mas acredito que seja moleza pra vocês.

 

Tenho um programa que é bem simples, mas não estou conseguindo chamar a variavel "vendidas" da primeira funçao para a segunda, com o valor já recebido na primeira função ali.

 

Tive que criar uma outra variável "vendidas2". Se conseguisse, a "vendidas2" sumiria, assim como o printf e scanf ali também sumiriam, na segunda função.

Tem jeito de colocar a "vendidas" ali naquela função? chama-la pra outra função?

 

 

 

 

#include <stdio.h>#include <stdlib.h>int restante(int vendidas = 0, int sobra = 0){printf("quantas pecas foram vendidas? ");scanf("%i/n", &vendidas);sobra = 500 - vendidas;return sobra, vendidas;}int valorpago(int pago = 0, int vendidas2 = 0){printf("digite novamente quantas pecas foram vendidas para calcular o preco: ");scanf("%i/n", &vendidas2);pago = vendidas2*50;return pago;}int main(){int sobra = restante();int pago = valorpago();printf("o numero de pecas restante no estoque e: %i\n", sobra);printf("o valor pago pela empresa foi: %i\n", pago);      system("PAUSE");      return 0;}
Postado

@Brêda

 

Você pode usar variáveis globais.

 

Ou

 

Colocar ...

int vendidas;printf("quantas pecas foram vendidas? ");scanf("%d", &vendidas);

... a variável vendidas em main e passar por parâmetro nas funções restante() e valorpago().

Postado

@Brêda

 

Você pode usar variáveis globais.

 

Ou

 

Colocar ...

int vendidas;printf("quantas pecas foram vendidas? ");scanf("%d", &vendidas);

... a variável vendidas em main e passar por parâmetro nas funções restante() e valorpago().

como assim, "passar por parametro"?

Variaveis globais eu também não conheço... sou meio novato em c++...

Postado

@Brêda

 

 

Olhe esse exemplo, está todo comentado.

#include <stdio.h>#include <stdlib.h>  /*variavel global, pode ser acessada por todas as funcoes */int numero;/*funcao func1, recebe por parametro um valor x (int), retornando x*x*/ int func1(int x){    numero = 5; //acessa a variavel global        printf("Numero: %d\n", numero); //imprime na tela    return x*x; //retorna o valor de x*x, recebido pelo parametro}/*funcao func2, recebe por parametro um valor y (int), retornando y+y*/int func2(int y){    numero = 10; //acessa a variavel global    printf("Numero: %d\n", numero); //imprime na tela    return y+y; //retorna o valor de y+y, recebido pelo parametro}  int main(){    //variaveis    int a,b;    a = func1(5); // variavel a recebe um valor retornado pela funcao func1    b = func2(8); // variavel b recebe um valor retornado pela funcao func2    printf("Valor de a: %d\n", a); //imprime a na tela    printf("Valor de b: %d\n", ; //imprime b na tela    getche(); //pausa    return 0;}
Postado

 

@Brêda

 

 

Olhe esse exemplo, está todo comentado.

#include <stdio.h>#include <stdlib.h>  /*variavel global, pode ser acessada por todas as funcoes */int numero;/*funcao func1, recebe por parametro um valor x (int), retornando x*x*/ int func1(int x){    numero = 5; //acessa a variavel global        printf("Numero: %d\n", numero); //imprime na tela    return x*x; //retorna o valor de x*x, recebido pelo parametro}/*funcao func2, recebe por parametro um valor y (int), retornando y+y*/int func2(int y){    numero = 10; //acessa a variavel global    printf("Numero: %d\n", numero); //imprime na tela    return y+y; //retorna o valor de y+y, recebido pelo parametro}  int main(){    //variaveis    int a,b;    a = func1(5); // variavel a recebe um valor retornado pela funcao func1    b = func2(8); // variavel b recebe um valor retornado pela funcao func2    printf("Valor de a: %d\n", a); //imprime a na tela    printf("Valor de b: %d\n", ; //imprime b na tela    getche(); //pausa    return 0;}

Entendi amigo, obrigado.. mas só não entendi uma coisa.. porque você tem que colocar ali no main, "a = func1(5)" o valor 5 ali dentro, se voce ja deu o valor la na função separada, e "b = func2(8)" esse valor 8 aí eu realmente não entendi.

Postado

@Brêda

 

Esse 5 dentro da função func1(), poderia ser qualquer número, assim como 8 dentro da função func2(), poderia ser 2,4,5,6.... N.

 

A variável "numero = 5" dentro da func1(), não tem nada a ver com o número 5 passado recebido no parâmetro.

 

Esse exemplo que mostrei, usa variáveis globais e passagem de parâmetro por valor em C. 

Arquivado

Este tópico foi arquivado e está fechado para 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!