Boa tarde pessoal , preciso fazer um menu com algumas opções . O usuário irá digitar dois números e de acordo com esses valores ele irá escolher uma opção para executar na tela . Até a parte de criação do menu e realizar as chamadas das funções foi tudo bem , porém quando peço pra executar uma opção ele retorna um valor errado . Por exemplo se o usuário digitar 3 e 4 como números de entrada e pedir para somar os dois números , o programa exibe o resultado de 42. Acho que eu estou fazendo alguma confusão na hora de passar as informações digitadas pelo usuário... Se alguém puder me dar uma luz, agradeço.
#include<stdlib.h>
#include<stdio.h>
#include<locale.h>
int menu(int opcao);
int soma(int a, int b);
int ordem(int maior, int menor);
int num_M(int maior, int menor);
int main()
{
int n1,n2;
int opcao=0;
int chama=0;
setlocale(LC_ALL,"Portuguese");
printf("\n Digite um número : ");
scanf("%i",&n1);
printf("\n Digite um número : ");
scanf("%i",&n2);
chama = menu(opcao);
}
int menu(int opcao)
{
int maior,menor;
int n1,n2;
int result;
printf("\n-------MENU--------");
printf("\n 0-SAIR");
printf("\n 1-Somar dois números");
printf("\n 2-Exibir o maior número");
printf("\n 3-Exibir números em ordem decrescente");
printf("\n Digite uma opção : ");
scanf("%i",&opcao);
if(opcao == 1)
{
result = soma(n1,n2);
}
if(opcao == 2)
{
ordem(maior,menor);
}
if(opcao == 3)
{
num_M( maior, menor);
}
}
int soma( int a, int b)
{
int result ;
result = a + b;
printf("\n A soma dos números é : %i",result);
}
int ordem(int maior,int menor)
{
int n1,n2;
if(n1>n2)
{
maior = n1;
menor = n2;
}
else
{
maior = n2;
menor = n1;
}
printf("\n O maior número é : %i",maior);
}
int num_M(int maior, int menor)
{
int n1,n2;
if(n1>n2)
{
maior = n1;
menor = n2;
}
else
{
maior = n2;
menor = n1;
}
printf("\n A ordem dos números é : %i\n %i\n",maior,menor);
}
Pergunta
Johnnyje21
Boa tarde pessoal , preciso fazer um menu com algumas opções . O usuário irá digitar dois números e de acordo com esses valores ele irá escolher uma opção para executar na tela . Até a parte de criação do menu e realizar as chamadas das funções foi tudo bem , porém quando peço pra executar uma opção ele retorna um valor errado . Por exemplo se o usuário digitar 3 e 4 como números de entrada e pedir para somar os dois números , o programa exibe o resultado de 42. Acho que eu estou fazendo alguma confusão na hora de passar as informações digitadas pelo usuário... Se alguém puder me dar uma luz, agradeço.
#include<stdlib.h>
#include<stdio.h>
#include<locale.h>
int menu(int opcao);
int soma(int a, int b);
int ordem(int maior, int menor);
int num_M(int maior, int menor);
int main()
{
int n1,n2;
int opcao=0;
int chama=0;
setlocale(LC_ALL,"Portuguese");
printf("\n Digite um número : ");
scanf("%i",&n1);
printf("\n Digite um número : ");
scanf("%i",&n2);
chama = menu(opcao);
}
int menu(int opcao)
{
int maior,menor;
int n1,n2;
int result;
printf("\n-------MENU--------");
printf("\n 0-SAIR");
printf("\n 1-Somar dois números");
printf("\n 2-Exibir o maior número");
printf("\n 3-Exibir números em ordem decrescente");
printf("\n Digite uma opção : ");
scanf("%i",&opcao);
if(opcao == 1)
{
result = soma(n1,n2);
}
if(opcao == 2)
{
ordem(maior,menor);
}
if(opcao == 3)
{
num_M( maior, menor);
}
}
int soma( int a, int b)
{
int result ;
result = a + b;
printf("\n A soma dos números é : %i",result);
}
int ordem(int maior,int menor)
{
int n1,n2;
if(n1>n2)
{
maior = n1;
menor = n2;
}
else
{
maior = n2;
menor = n1;
}
printf("\n O maior número é : %i",maior);
}
int num_M(int maior, int menor)
{
int n1,n2;
if(n1>n2)
{
maior = n1;
menor = n2;
}
else
{
maior = n2;
menor = n1;
}
printf("\n A ordem dos números é : %i\n %i\n",maior,menor);
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.