Ir ao conteúdo

Posts recomendados

Postado

To fazendo esse programinha, ali na soma, eu queria saber como faço para voltar para o MENU do programa digitando o numero 0, só nao sei com usar o Do e While junto com FOR

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

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


int main()
{


    printf("");
    menu();

    return 0;
}

void soma()
{
    int num[8], cont, soma=0 ;
    
        system("cls");
        printf("\nDigite -0 para ir para a Tela Principal ou de ENTER para mais uma operacao!\n");
        for(cont=0; cont<8; cont++){
        printf("\nDigite um numeros [%d]: ",cont);
        scanf("%d",&num[cont]);
        }  
        {
            for(cont=0; cont<8;cont++){
            soma=soma+num[cont];}    
            printf("a soma e %d", soma);
            }      
}

void subtracao()
{
    float num1,num2 ;
    float total;
    do
    {
        system("cls");
        printf("\nDigite -0 para ir para a Tela Principal ou de ENTER para mais uma operacao!\n");
        printf("\nDigite o primeiro numero: \n");
        scanf("%f",&num2);
        if (num1 != 0)
        {
        printf("Digite o segundo numero: \n");
            scanf("%f", &num2);
            total = num1-num2;
            printf("O resultado da subtracao e = ");
            printf("%.2f\n", total);
            getch();
        }
        else
        {
            main();
        }
    }
    while (num1 != -0);
}

void multiplicacao()
{
    float num1,num2 ;
    float total;
    do
    {
        system("cls");
        printf("\nDigite -0 para ir para a Tela Principal ou de ENTER para mais uma operacao!\n");
        printf("\nDigite o primeiro numero: \n");
        scanf("%f",&num1);
        if (num1 != -0)
        {

        printf("Digite o segundo numero: \n");
            scanf("%f", &num2);
            total = num1*num1;
            printf("O resultado da multipliacao e = ");
            printf("%.2f\n", total);
            getch();
        }
        else
        {
            main();
        }
    }
    while (num1 != -0);
}

void divisao()
{
    float num1,num2 ;
    float total;
    do
    {
        system("cls");
        printf("\nDigite -0 para ir para a Tela Principal ou de ENTER para mais uma operacao!\n");
        printf("\nDigite o primeiro numero: ");
        scanf("%f",&num1);
        if (num1 != -0)
        {
            printf("\nDigite o segundo numero: ");
            scanf("%f", &num2);
            total = num1/num2;
            printf("\nO resultado da divisao e = ");
            printf("%.2f\n", total);
            printf("\nSe deseja fazer mais uma operacao de enter!");
            getch();
        }
        else
        {
            main();
        }
    }
    while (num1 != -0);
}

void porcentagem()
{
    float num1,num2 ;
    float total;
    do
    {
        system("cls");
        printf("\nDigite -0 para ir para a Tela Principal ou de ENTER para mais uma operacao!\n");
        printf("\nDigite o primeiro numero: \n");
        scanf("%f",&num1);
        if (num1 != -0)
        {
            scanf("%f", &num2);
            total = num1+num2;
            printf("A porcentagem e = ");
            printf("%.2f\n", total);
            getch();
        }
        else
        {
            main();
        }
    }
    while (num1 != -0);
}

void menu()
{
    int opcao;
    system("cls");
    printf("**********************************\n");
    printf("***DIGITE UM NUMERO E DE ENTER***\n");
    printf("**********************************\n");
        printf("\n 1-Soma\n");
            printf("\n 2-Subtracao\n");
                printf("\n 3-Multiplicacao\n");
                    printf("\n 4-Divisao\n");
                        printf("\n 5-Porcentagem \n\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");
    }
}

 

  • Obrigado 1
Postado

@dimitruf    para volta para o menu você coloca um loop dentro da função para ficar dentro da função enquanto não digitar zero e quando for digitado o zero ele passa pelo loop while e retorna para o local de onde foi chamada a função , que nesse código é a função menu ,  então seu código com algumas modificações poderia ser assim   :

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

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

int main(){
    int op;
    do{
        op = menu();    /* pega a oção escolhida no menu             */
    }while(op != 6 );   /* se for a sexta opção sai do loop do/while */
    printf("\n\n\n");   /* pula três linhas                          */
    return 0;           /* fecha o Console e retorna para o Windows  */
}
void soma(){
    int num[8],cont,soma=0,flag;
    system("cls");
    do{
        flag=0;
        system("cls");
        printf("esta na funcao Soma :\n");
        printf("\n Digite 0 para ir para a Tela Principal\n");
        printf(" ou Tecle ENTER para mais uma operacao !\n");
        for(cont=0; cont<8; cont++){
            printf("Digite um numeros [%d]: ",cont);
            scanf("%d",&num[cont]);
            if( num[cont]==0 ){
                flag = 1;/* bandeira sinaliza saída dessa função */
                break;/* sai desse loop for */
            }
        }
        if( ! flag ){/* se variável flag igual a zero */
            for(cont=0; cont<8; cont++ ){
                soma=soma+num[cont];
            }
            printf("a soma eh -> %d\n\n",soma);
            printf("     Tecle . . . !");
            num[cont] = getch()-48;/* 48 é o código ASCII do dígito zero */
            /* então 48 menos 48 igual a zero , aí sai do loop           */
        }
    }while( num[cont] != 0 );
}/* retorna para o menu */
void subtracao(){
    float num1,num2,total;
    do{
        system("cls");
        printf("esta na funcao Subtracao :\n");
        printf("\n Digite 0 para ir para a Tela Principal\n");
        printf(" ou pressione ENTER para mais uma operacao !\n");
        printf("\nDigite o primeiro numero ---: ");
        scanf("%f",&num1);
        if( num1 == 0 )break;/* sai desse loop do/while */
        printf("Digite o segundo numero --- : ");
        scanf("%f",&num2);
        total = num1 - num2;
        printf("O resultado da subtracao eh = %.2f\n",total);
        num1 = getch()-48;/* 48 é o código ASCII do dígito zero */
        /* então 48 menos 48 igual a zero , aí sai do loop      */
    }while (num1 != 0);
}/* retorna para o menu */

void multiplicacao(){
    float num1,num2,total;
    do{
        system("cls");
        printf("esta na funcao Multiplicacao :\n");
        printf("\n Digite 0 para ir para a Tela Principal\n");
        printf(" ou de ENTER para mais uma operacao !\n");
        printf("\nDigite o primeiro numero -: ");
        scanf("%f",&num1);
        if( num1 == 0 )break;
        printf("Digite o segundo numero -: \n");
        scanf("%f",&num2);
        total = num1 * num2;
        printf("O resultado da multipliacao eh = %.2f\n",total);
        printf("       Tecle . . . !\n");
        num1 = getch()-48;/* 48 é o código ASCII do dígito zero */
        /* então 48 menos 48 igual a zero , aí sai do loop      */
    }while( num1 != 0 );
}/* retorna para o menu */
void divisao(){
    float num1,num2,total;
    do{
        system("cls");
        printf("esta na funcao Divisao :\n");
        printf("\n Digite 0 para ir para a Tela Principal\n");
        printf(" ou Tecle ENTER para mais uma operacao !\n");
        printf("\nDigite o primeiro numero -: ");
        scanf("%f",&num1);
        if (num1 == 0)break;/* sai desse loop do/while e volta para o menu */
        printf("\nDigite o segundo numero: ");
        scanf("%f", &num2);
        total = num1/num2;
        printf("\nO resultado da divisao e = ");
        printf("%.2f\n", total);
        printf("\nSe deseja fazer mais uma operacao Tecle enter !\n");
        num1 = getch()-48;/* 48 é o código ASCII do dígito zero */
        /* então 48 menos 48 igual a zero , aí sai do loop      */
    }while( num1 != 0 );
}/* retorna para o menu */
void porcentagem(){
    float num1,num2,total;
    do{
        system("cls");
        printf("esta na funcao Porcentagem :\n");
        printf("\n Digite 0 para ir para a Tela Principal\n");
        printf(" ou Teclee ENTER para mais uma operacao !\n");
        printf("\nDigite o primeiro numero -: \n");
        scanf("%f",&num1);
        if( num1 == 0 )break;
        scanf("%f", &num2);
        total = num1+num2;
        printf("A porcentagem eh = %.2f\n",total);
        num1 = getch()-48;/* 48 é o código ASCII do dígito zero */
        /* então 48 menos 48 igual a zero , aí sai do loop      */
    }while( num1 != 0 );
}/* retorna para o menu */
int menu(){
    int opcao;
    system("cls");
    printf("**********************************\n");
    printf("***DIGITE UM NUMERO E DE ENTER***\n");
    printf("**********************************\n");
    printf(" 1 - Soma\n");
    printf(" 2 - Subtracao\n");
    printf(" 3 - Multiplicacao\n");
    printf(" 4 - Divisao\n");
    printf(" 5 - Porcentagem\n");
    printf(" 6 - Sair Do Programa\n\n");
    printf("     sua Opcao -> ");
    scanf("%d", &opcao);
    switch(opcao){
    case 1:
        soma();
        break;
    case 2:
        subtracao();
        break;
    case 3:
        multiplicacao();
        break;
    case 4:
        divisao();
        break;
    case 5:
        divisao();
        break;
    default:
        printf("\n\n            Saindo . . . !\n\n\n");
        system("exit");
        exit(0);
    }
    return opcao;/* retorna a opcao escolhida para dentro da main */
}

 

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