Programação em C - IF

Page 26

22

Capítulo 2. Controle de fluxo

/* Calcula o fatorial de um número inteiro não-negativo. */ #include <stdio.h> int main() { int n, a, b; printf(”Digite um número: ”); scanf(”%d”, &n); a = 1; b = 2; while (b <= n) { a = a * b; b = b + 1; } printf(”%d! = %d\n”, n, a); return 0; }

E Faça um programa que lê do teclado dois números, a > 0 e b ≥ 0, e imprime o valor da potência ab . Vamos agora ver outro tipo de programa que vale a pena ser ressaltado. Vamos buscar resolver o seguinte problema: ler do teclado uma sequência de números, cujo tamanho não é inicialmente conhecido, mas que sabemos ser terminada por um zero (ou seja, os demais números da sequência são todos não-nulos), e somar os números lidos. Que tipo de algoritmo podemos usar para atacar esse problema? Obviamente, se não sabemos a priori quantos elementos a sequência tem, não podemos armazenar todos os elementos para depois somar todos; precisamos acumular as somas parciais a cada número lido. Para isso, devemos usar uma variável soma, certamente inicializada com o valor zero, à qual se somará cada número lido. A idéia central é ler números do teclado indefinidamente até que o número lido seja zero. Sempre que o número for diferente de zero, devemos incluí-lo na soma e continuar lendo números. Se tivermos declarado uma variável num para armazenar os números, podemos fazer assim: while (num != 0) { soma = soma + num; printf(”Digite outro número ou 0 para terminar: ”); scanf(”%d”, &num); }

Mas é preciso prestar atenção a um detalhe: num deverá ser lido pela primeira vez antes desse laço — caso contrário, a variável não estaria inicializada!. Feitas essas observações, nosso programa ficará com essa cara: #include <stdio.h> int main() { int num, soma; soma = 0; printf(”Digite um número ou 0 para terminar: ”); scanf(”%d”, &num);


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.