Ir ao conteúdo
  • Cadastre-se

C Usando Do e While DEV C


dimitruf

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

@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 */
}

 

Link para o comentário
Compartilhar em outros sites

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