How to have an option that exits the program or continues running with others?

Asked

Viewed 38 times

2

You can add a third option when asking the user, and this option will only appear after the first calculation. Ex. (3 quit). I just thought of the way the 3 options emerge from the beginning.

#include <stdio.h>

  int soma(void)
  {
      int valor, soma;
      soma = 0;
      printf("Foi escolhida a soma:\n\n");
      do
      {
          printf("Informe os valores desejados e 0 (zero) para concluir:");
          scanf("%d", &valor);
          soma += valor;
      }
      while(valor!=0);

      return soma;
  }

  int mult(void)
  {
      int valor, mult;
      mult= 1;
      printf("Foi escolhida a multiplicacao:\n\n");
      do{
           printf("Informe os valores desejados e 0 (zero) para concluir:");
           scanf("%d", &valor);
           if(valor==0)
           {
                break;
           }
           mult*= valor;
      }
      while(valor!=0);

      return mult;
  }

  int main()
  {
      int op ,result;
      printf("Informe a operacao desejada soma(1) ou produto (2):");
      scanf("%d", &op);

      if(op==1)
      {
          result = soma();
      }  
      else if(op==2)
      {
          result = mult();
      }

      printf("O resultado foi: %d", result);
      return 0;

  }

1 answer

2


Just add a bow on main(). I preferred to use the 0 to come out to maintain consistency:

#include <stdio.h>

int soma(void) {
    int valor = 0, soma = 0;
    printf("Foi escolhida a soma:\n\n");
    do {
        printf("Informe os valores desejados e 0 (zero) para concluir:");
        scanf("%d", &valor);
        soma += valor;
    } while (valor != 0);
    return soma;
}

int mult(void) {
    int valor = 0, mult = 1;
    printf("Foi escolhida a multiplicacao:\n\n");
    do {
        printf("Informe os valores desejados e 0 (zero) para concluir:");
        scanf("%d", &valor);
        if (valor == 0) break;
        mult *= valor;
    } while (valor != 0);
    return mult;
}

int main() {
    int op = 0, result;
    do {
        printf("Informe a operacao desejada soma(1) ou produto (2):");
        scanf("%d", &op);
        if (op == 1) result = soma();
        else if (op == 2) result = mult();
        if (op != 0) printf("O resultado foi: %d", result);
    } while (op != 0);
}

Behold working in the ideone. And in the repl it.. Also put on the Github for future reference.

  • Thank you very much!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.