# Programar em C/Operações matemáticas (Básico)
## Operações matemáticas

Em C, fazer operações matemáticas simples é bastante fácil e intuitivo. Por exemplo, se quisermos que uma variável contenha o resultado da conta 123 + 912, fazemos assim:
Em C, fazer operações matemáticas simples é bastante fácil e intuitivo. Por exemplo, se quisermos que uma variável contenha o resultado da conta 123 + 912, fazemos assim:
Os operadores aritméticos básicos são 5: + (adição), - (subtração), * (multiplicação), / (divisão) e % (resto de divisão inteira).
Outro exemplo:
Código de uma calculadora BASICA em C:
Podemos usar mais de um operador na mesma expressão. A precedência é igual à usada na matemática comum:
Você pode usar parênteses, como em expressões matemáticas normais:
Note que uma operação entre números inteiros sempre retornará um número inteiro. Isso é evidente para a adição, subtração e multiplicação. Mas em uma divisão de inteiros, por exemplo 3/2, a expressão retornará apenas a parte inteira do resultado, ou seja, 1.
Se quisermos um resultado não-inteiro, um dos operandos deve ser não-inteiro. Nesse exemplo, poderíamos usar 3.0/2 ou 3/2.0, ou mesmo 3./2 ou (1.0 * 3)/2, pois, em C, uma operação envolvendo um número não-inteiro sempre terá como resultado um número real.
Note que em C o separador decimal é o ponto e não a vírgula.
O seguinte exemplo poderia surpreender, pois o programa dirá que o valor de f continua sendo 3.
Mas, segundo a precedência dos operadores, j / i deveria ser calculado primeiro, e como ambos os valores são do tipo inteiro, o valor dessa expressão é zero.
É importante que você grave um arquivo .c com o código acima e execute usando o compilador para ver o funcionamento com os próprios olhos.

### Abreviações

Alguns tipos de atribuições são bastante comuns, e por isso foram criadas abreviações. Por exemplo, é muito comum incrementar em uma unidade o valor de uma variável (em loops, por exemplo). Em vez de escrever var = var + 1, podemos escrever simplesmente var++. Da mesma maneira, existe o operador de decremento, que decrementa em uma unidade o valor da variável: var-- (equivalente a var = var - 1).
Os operadores de decremento e incremento também podem ser utilizados antes do nome da variável. Isso significa que estas duas instruções são equivalentes:
Agora vamos supor que você use em seu programa uma variável que aumenta de 10 em 10 unidades. É claro que usar var++ dez vezes não abreviaria nada. Em vez disso, existe a abreviação var += 10.
Genericamente, para qualquer dos cinco operadores aritméticos op, vale a abreviação:
Ou seja, os seguintes pares são equivalentes:
Este exemplo clarifica o uso dos operadores de incremento:
O resultado que você deve obter ao executar o exemplo é:
Esse resultado mostra que ++var e var++ não são a mesma coisa se usados como uma expressão. Quando usamos os operadores na forma prefixal (antes do nome da variável), o valor é retornado depois de ser incrementado; na forma sufixal, o valor é retornado e depois incrementado. O mesmo vale para o operador de decremento.
E o que aconteceria se você escrevesse algo como o seguinte?
A resposta é: não sabemos. Segundo o padrão C, o resultado disso é indefinido (o que significa que pode variar de um compilador para outro). Não existe uma regra sobre avaliar primeiro o numerador ou o denominador de uma fração. Ou seja, não use uma variável mais de uma vez numa expressão se usar operadores que a modificam.
Talvez você tenha achado estranha a linha:
Isso é possível porque atribuições são feitas da direita para a esquerda e uma instrução de atribuição é também uma expressão que retorna o valor atribuído. Ou seja, a expressão b = 5 retornou o valor 5, que foi usado pela atribuição a = (b = 5), equivalente a a = 5.

### Fluxo de Caixa

O código abaixo descreve o funcionamento de um comércio online.
Primeiramente, o programa solicita um valor de depósito. Em seguida, descreve as opções de produtos disponíveis e seus valores. Após a seleção do produto, você poderá digitar a quantidade que deseja comprar. Feito isso, a compra será efetuada, custo total e saldo restante seram informados.

###### Condições

* Se você tentar realizar a compra e seu saldo inicial for menor ou igual a zero, o programa retornará a seguinte mensagem: 'Voce nao tem saldo suficiente para realizar a compra'.
* Se o produto selecionado for diferente dos produtos listados, o programa retornará a seguinte mensagem: 'Desculpe, o produto nao esta disponivel no momento'.
* Se a quantidade informada for menor ou igual a zero, o programa retornará a seguinte mensagem: 'Por favor, insira um valor maior que zero'.
* Se o custo total da compra (custo = valor do produto * quantidade), for maior que o saldo inicial informado, o programa retornará a seguinte mensagem: 'Voce nao tem saldo suficiente para realizar a compra'.
#include <stdio.h> int main{
int carteira, preco, quantidade, produto, saldo, custo;
printf("Conveniencia Online\n");
printf("\nDigite o valor do deposito.\n");
scanf("%i", &carteira);
printf("Seu saldo eh: %i\n", carteira);
printf("Qual produto deseja adicionar ao carrinho? Selecione apenas um numero por vez.\n");
printf("Temos:\n 1- Refrigerante = R$ 8,00 \n 2- Energetico = R$ 10,00\n 3- Cerveja = R$ 5,00\n 4- Agua = R$ 1,00\n");
scanf("%i", &produto);
if(produto == 1 || produto == 2 || produto == 3 || produto == 4){
printf("Escolha a quantidade:\n");
scanf("%i", &quantidade);
else{
printf("Desculpe, o produto nao esta disponivel no momento.\n");
return 0;}
if(produto == 1){
custo= 8*quantidade;
else{
if(produto== 2){
custo = 10*quantidade;
else{
if(produto== 3){
custo = 5*quantidade;
if(produto== 4){
custo = 1*quantidade;
if (custo > carteira)
printf("\nVoce nao tem saldo suficiente para realizar a compra.");
return 0;}
if (quantidade <= 0)
printf("\nPor favor, insira um valor maior que zero.");
return 0;}
printf("\nCompra realizada com sucesso!");
printf("\nCusto total:%i", custo);
saldo = carteira - custo;
printf("\nSaldo restante:%i", saldo);
return 0;}
Após, realizar a compra, o programa retornará zero e será encerrado.