Ir para conteúdo

POWERED BY:

Arquivado

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

Hellsius

[Resolvido] Criação de funções.

Recommended Posts

Bom dia. Estou começando a aprender a trabalhar com funções, mas meus 2 primeiros fontes que tentei compilar não compilaram e não é mostrada nenhuma menssagem de erro, simplismente não compila.

Este é um dos dois fontes que tentei compilar:

#include <stdio.h> //printf
#include <stdlib.h>
#include <conio.h> //getch();
#include <ctype.h> //toupper
#include <iostream.h>

int soma(int numero1, int numero2)
{
   int x;

   x = numero1+numero2;
   return x; 

}
void MostraSoma(int soma)
{
     printf("\n A soma eh: %d", soma);    
}
int main()
{
   // Variaveis
   int num1, num2;

   // Entrada de Dados
   printf("Informe um numero: ");
   scanf("%d", &num1);

   printf("Informe outro numero: ");
   scanf("%d", &num2);

   // Processamento
   x = soma( num1, num2);
   MostraSoma(soma);

   // Final do Codigo   
   getch();
}

 

obs: Quando tento compilar aparece um done wh.... algo assim, mas nenhum executavel é criado. :( . Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há a necessidade de uma função que irá apenas exibir (imprimir) um texto (MostraSoma)... Creio que ela é desnecessária.

 

Na função soma, você pode simplificar como:

 int soma (int numero1, int numero2) {
return (numero1 + numero2);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno, fiz o ultimo ajuste sobre o mostraSoma e o fonte compilou e rodou, vlw mesmo, mas me lembro que no unico exercicio que a professora passou sobre função chegamos a usar o void e utilizar o MostraMedia no exercicio que ela passou, gostaria de saber o que esta Errado em meu MostraSoma.

 

O fonte ficou assim:

#include <stdio.h> //printf
#include <stdlib.h>
#include <conio.h> //getch();
#include <ctype.h> //toupper


int soma(int numero1, int numero2)
{
   int x;

   x = numero1+numero2;
   return x; 

}
void MostraSoma(int soma)
{
     printf("\n A soma eh: %d", soma);    
}
int main()
{
   // Variaveis
   int num1, num2, x;

   // Entrada de Dados
   printf("Informe um numero: ");
   scanf("%d", &num1);

   printf("Informe outro numero: ");
   scanf("%d", &num2);

   // Processamento
   x = soma( num1, num2);
   printf("A soma dos numeros eh: %d", x);

   //MostraSoma(soma);

   // Final do Codigo   
   getch();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que está errado é que esse MostraSoma é inútil. Você nunca faria uma função assim na vida real. Afinal, a função é usada para organizar seu código. Em que organizaria colocando uma função com apenas 1 statement? Que ainda por cima só mostra uma mensagem, sem cálculos? Isso torna seu código mais confuso, e, ainda por cima, mais lento!

 

Fale pra essa sua professora que ela precisa arranjar exercícios melhores...

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim explicar só para fim didático?

 

Você fez direito, está certo.

 

Se você colocasse um valor de retorno que não seja void, você teria que colocar a instrução return statement; no final da função, como se faz em main().

 

 

É isso?

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código ficaria melhor assim:

 

#include <stdio.h> //printf
#include <stdlib.h>
#include <conio.h> //getch()

 int soma(int numero1, int numero2){    
      int x;       
      x = numero1 + numero2;   
      return x;     
     }

 int main(){       
 int num1, num2;        // Variaveis 

 printf("Informe um numero: ");    
 scanf("%d", &num1);         // Entrada de Dados 
 printf("Informe outro numero: ");    
 scanf("%d", &num2);          // Entrada de Dados   

 printf("A soma dos numeros eh: %d", soma(num1,num2));   //Imprime o retorno da função soma        
 // Final do Codigo       
 getch();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

O código não ficaria melhor do jeito que o Gr4v370 falou, você só está criando uma variável a mais e desperdiçando espaço na memória sem motivo. Você pode colocar a soma da função no retorno dela, não precisa criar uma variável temporária para isso.

 

 

Abraços :D

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.