Olá, pessoal! Posto aqui a solução para o desafio Calculando, da plataforma BEECROWD (antiga URI).
Plataforma: URI (BEECROWD)
Problema: 3065
Linguagem: C
Solução:
Note no código que a parte mais importante está no while interno. A comparação op == 43 é feita porque 43 é o código ASCII do operador de soma (caractere "+"). Assim, se o operador for de soma, faz a conta r + v; caso contrário faz r - v. Creio que essa seja a parte mais importante do código. Claro, quem quiser pode fazer um if direto, aqui eu quis fazer com o operador ternário por achar que fica simples de resolver em uma linha só.
#include <stdio.h>
int main() {
int n, v, r, c = 1; char op;
while (scanf("%d", &n)) {
if (n == 0) return 0;
scanf("%d", &r);
while (n-- > 1) { scanf("%c%d", &op, &v); r += op == 43? v : -v; }
printf("Teste %d\n%d\n\n", c++, r); }
return 0; }
Nenhum comentário:
Postar um comentário