/*
 * arquivo: inverte.c
 * -----------------
 * Este programa resolve o seguinte problema:
 *
 * Dados n numeros inteiros, imprimi-los na ordem inversa a da leitura.
 * (Supor n < 100.)
 *
 */

#include <stdio.h>

int main()
{
    int i, n, a[100];	/* reserva um total de 100 posicoes:  a[0], a[1],..., a[99]   */

    printf("Forneca o valor de n (total de inteiros a serem lidos):");
    scanf("%d", &n);

    for (i = 0; i < n; i++)
	scanf("%d", &a[i]);

    for (i = n - 1; i >= 0; i--)
	printf("%d ", a[i]);

    return 0;
}

==========================================================

/*
 * arquivo: busca.c
 * -----------------------------
 * Este programa determina se um dado elemento y (real) ocorre num
 * dado vetor x com n elementos reais.  (n < 100)
 *
 * Ordem dos dados: y (real), n (inteiro), vetor real x com n elementos.
 */

#include <stdio.h>

#define NMAX 100      /* veja como MAX é usado para definir o tamanho do vetor x */        

int main()
{
    double y, x[NMAX];          /******** veja *******/ 
    int i, n;

    printf("Forneca o elemento y procurado: ");
    scanf("%lf", &y);

    printf("Forneca o valor de n: ");
    scanf("%d", &n);

    printf("Forneca os %d doubles: ", n);
    for (i = 0; i < n; i++)
	scanf("%lf", &x[i]);

    printf("Os elementos do vetor sao ");
    for (i = 0; i < n; i++)
	printf("%g ", x[i]);
    printf("\n");

    x[n] = y;     	/* sentinela */
    i = 0;
    while (x[i] != y)
	i++;

    if (i != n)
	printf("O elemento %g foi encontrado.\n", y);
    else
	printf("O elemento %g nao foi encontrado.\n", y);

    return 0;
}


================================================================

/*
 * BUSCA COM SENTINELA
 *
 * arquivo: busca2.c
 * -----------------
 * Este programa determina se um dado elemento y (real) ocorre num
 * dado vetor x com n elementos reais.  (n < 100)
 *
 * Ordem dos dados: y (real), n (inteiro), vetor real x com n elementos.
 */


#include <stdio.h>

#define NMAX 100

int main()
{
    double y, x[NMAX];
    int i, n,
      achou; /* vale 0 se nao encontrou o elemento   */
             /* vale 1 se encontrou o elemento */

    printf("Forneca o elemento y procurado: ");
    scanf("%lf", &y);

    printf("Forneca o valor de n: ");
    scanf("%d", &n);

    printf("Forneca os %d doubles: ", n);
    for (i = 0; i < n; i++)
	scanf("%lf", &x[i]);

    printf("Os elementos do vetor sao ");
    for (i = 0; i < n; i++)
	printf("%g ", x[i]);
    printf("\n");

    x[n] = y;     	/* SENTINELA */

    achou = 0;  /* por enquanto nao encontrou o elemento */

    i = 0;
    while (i < n && !achou){
      if (x[i] == y) achou = 1;
      i++;
    }

    if (achou)   /* equivalente a perguntar if (achou == 1) */
	printf("O elemento %g foi encontrado.\n", y);
    else
	printf("O elemento %g nao foi encontrado.\n", y);

    return 0;
}

================================================================
Busca Binária  --- será colocado em breve 
================================================================




/*
 * arquivo: triang_pascal.c
 * -----------------
 * Este programa imprime as n  primeiras linhas do triangulo de Pascal,
 * para um dado n (a ser lido)
 * 
 * Abaixo indicamos as 8 primeiras linhas do triangulo de Pascal.
 * 
 * 
 *     1
 *     1   1
 *     1   2   1 
 *     1   3   3   1 
 *     1   4   6   4   1
 *     1   5  10  10   5   1 
 *     1   6  15  20  15   6   1
 *     1   7  21  35  35  21   7   1 
 *
 * OBS: Para n > 15 o alinhamento nao vai ficar OK.
 */

#include 

#define SIZE 20

int main()
{
    int i, j, n, a[SIZE];	
			
    printf("Forneca o valor de n (n<16):");
    scanf("%d", &n);

    for (i = 1; i <= n; i++){
       a[i] = 1;
       for (j = i-1; j > 1; j--)
           a[j] = a[j] + a[j-1];

       for (j = 1; j <= i; j++)
         printf("%4d ", a[j]);
       printf("\n");
    }  
    return 0;
}


===============================================================