Ir ao conteúdo

Posts recomendados

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

void soma();
void subtracao();
void multiplicacao();
void divisao();
void menu();


int main()
{


    printf("");
    menu();

    return 0;
}

void soma()
{
    float x,y ;
    float total;
    char sn;
    do
    {
        system("cls");
        printf("Digite -0 para fechar o programa\n");
        printf("Digite o primeiro numero: \n");
        scanf("%f",&x);
        if (x != -0)
        {
            printf(" + ");
            scanf("%f", &y);
            total = x+y;
            printf(" = ");
            printf("%.2f\n", total);
            getch();
        }
        else
        {
            main();
        }
    }
    while (x != -0);
}
void subtracao()
{
    float x,y ;
    float total;
    char sn;
    do
    {
        system("cls");
        printf("Digite -0 para fechar o programa\n");
        printf("Digite o primeiro numero: \n");
        scanf("%f",&x);
        if (x != 0)
        {
            printf(" + ");
            scanf("%f", &y);
            total = x+y;
            printf(" = ");
            printf("%.2f\n", total);
            getch();
        }
        else
        {
            main();
        }
    }
    while (x != -0);
}
void multiplicacao()
{
    float x,y ;
    float total;
    char sn;
    do
    {
        system("cls");
        printf("Digite sair para fechar o programa\n");
        printf("Digite o primeiro numero: \n");
        scanf("%f",&x);
        if (x != -0)
        {

            printf(" + ");
            scanf("%f", &y);
            total = x+y;
            printf(" = ");
            printf("%.2f\n", total);
            getch();
        }
        else
        {
            main();
        }
    }
    while (x != -0);
}
void divisao()
{
    float x,y ;
    float total;
    char sn;
    do
    {
        system("cls");
        printf("Digite sair para fechar o programa\n");
        printf("Digite o primeiro numero: \n");
        scanf("%f",&x);
        if (x != -0)
        {
            printf(" + ");
            scanf("%f", &y);
            total = x+y;
            printf(" = ");
            printf("%.2f\n", total);
            getch();
        }
        else
        {
            main();
        }
    }
    while (x != -0);
}
void menu()
{
    int opcao;
    system("cls");
    printf("MENU\n");
    printf("1-Soma\n");
    printf("2-Subtracao\n");
    printf("3-Multiplicacao\n");
    printf("4-Divisao\n");

    printf("0\n");
    scanf("%d", &opcao);
    switch(opcao)
    {
    case 1:
        soma();
        break;
    case 2:
        subtracao();
        break;
    case 3:
        multiplicacao();
        break;
    case 4:
        divisao();
        break;
    default:
        system("exit");
    }
}

Tente assim.

  • mês depois...
Postado

Assim rodou de boas...

 

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

void subtracao(){
    float x, y;
    float total;
    char sn;
    do{
        system("cls");
        printf("Digite -0 para fechar o programa\n");
        printf("Digite o primeiro numero:\n");
        printf("   ");
        scanf("%f", &x);
        if(x != 0){
            printf(" - ");
            scanf("%f", &y);
            total = x-y;
            printf("----------\n ");
            printf("%.2f\n", total);
            getch();
        }
        else{
            main();
        }
    }while(x != -0);
};

void multiplicacao(){
    float x, y;
    float total;
    char sn;
    do{
        system("cls");
        printf("Digite sair para fechar o programa\n");
        printf("Digite o primeiro numero:\n");
        printf("   ");
        scanf("%f", &x);
        if(x != -0){
            printf(" x ");
            scanf("%f", &y);
            total = x*y;
            printf("----------\n ");
            printf("%.2f\n", total);
            getch();
        }
        else{
            main();
        }
    }while(x != -0);
};

void divisao(){
    float x, y;
    float total;
    char sn;
    do{
        system("cls");
        printf("Digite sair para fechar o programa\n");
        printf("Digite o primeiro numero:\n");
        printf("   ");
        scanf("%f", &x);
        if(x != -0){
            printf(" / ");
            scanf("%f", &y);
            total = x/y;
            printf("----------\n ");
            printf("%.2f\n", total);
            getch();
        }
        else{
            main();
        }
    }while(x != -0);
};

void soma(){
    float x, y;
    float total;
    char sn;
    do{
        system("cls");
        printf("Digite -0 para fechar o programa\n");
        printf("Digite o primeiro numero:\n");
        printf("   ");
        scanf("%f", &x);
        if(x != -0){
            printf(" + ");
            scanf("%f", &y);
            total = x+y;
            printf("----------\n ");
            printf("%.2f\n", total);
            getch();
        }
        else{
            main();
        }
    }while(x != -0);
};

void menu(){
    int opcao;
    system("cls");
    printf("MENU\n");
    printf("1-Soma\n");
    printf("2-Subtracao\n");
    printf("3-Multiplicacao\n");
    printf("4-Divisao\n");
    printf("0\n");
    scanf("%d", &opcao);

    switch(opcao){
        case 1:
            soma();
            break;
        case 2:
            subtracao();
            break;
        case 3:
            multiplicacao();
            break;
        case 4:
            divisao();
            break;
            default:
            system("exit");
    }
};

int main()
{
    printf("");
    menu();
    return 0;
}

 

  • Curtir 1
Postado

Mesmo que esteja está tudo certo, ainda estou inquieto com relação a função main.

 

Observe que ela é chamada a cada operação, isso além de ocupar um espeço desnecessário da pilha

põe risco na instabilidade do sistema . Podemos contornar facilmente essa lógica com uma estrutura de repetição.

  • Curtir 3

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...