--------------------------------------------------------------------------    
MAC-115  --------------  25 a 27 de março   ---------------------- MAC-115
--------------------------------------------------------------------------
            comando iterativo "while"
==========================================================================
         Comandos condicionais "if"  e " if-else"
--------------------------------------------------------------------------
/* 
 * arquivo: num_neg_a.c
 *
 * Este programa recebe como entrada uma sequencia de inteiros
 * nao-nulos cujo termino e' indicado por um 0 (sentinela).
 * O programa imprime (a) o numero de inteiros (nao-nulos) lidos
 * e (b) o numero de numeros estritamente negativos lidos. 
 */

#include <stdio.h>


int main()
{
    int x,			/* cada um dos numeros que serao lidos */
     conta,			/* total de inteiros nao-nulos */
     conta_neg;			/* total de inteiros negativos */

    conta = 0;
    conta_neg = 0;

    printf("De varios numeros inteiros e termine a colecao fornecendo o  zero\n");
    scanf("%d", &x);

    while (x != 0) {
	if (x < 0)
	    conta_neg++;
	conta++;

	scanf("%d", &x);
    }

    printf("Numero de inteiros nao-nulos lidos: %d.\n", conta);
    printf("Numero de inteiros negativos lidos: %d.\n", conta_neg);

    system("PAUSE");
    return 0;
}

--------------------------------------------------------/*
/*
 * Arquivo: prog1.20.c
 * -------------------
 * Este programa é uma solução do Problema 1.20 do Caderno
 * de Exercícios: dados três números, imprimi-los em ordem
 * crescente.
 */
#include <stdio.h>

int main()
{
    int x, y, z;

    printf("Forneca 3 inteiros (separados por brancos): ");
    scanf("%d %d %d", &x, &y, &z);

    if (x <= y) {
        if (y <= z)
            printf("Temos %d <= %d <= %d\n", x, y, z);
        else if (x <= z)
            printf("Temos %d <= %d <= %d\n", x, z, y);
        else
            printf("Temos %d <= %d <= %d\n", z, x, y);
    } else if (x <= z)
        printf("Temos %d <= %d <= %d\n", y, x, z);
    else if (y <= z)
        printf("Temos %d <= %d <= %d\n", y, z, x);
    else
        printf("Temos %d <= %d <= %d\n", z, y, x);

    /* Parabens se voce conseguiu ler os if e if else acima */
    /* e entendeu! */

    system("PAUSE");
    return 0;
}
-----------------------------------------------------------------
OUTRA INDENTAÇÃO (do programa acima) 
-----------------------------------------------------------------

#include <stdio.h>

int main()
{
    int x, y, z;

    printf("Forneca 3 inteiros (separados por brancos): ");
    scanf("%d %d %d", &x, &y, &z);

    if (x <= y) 
    {   if (y <= z)
	    printf("Temos %d <= %d <= %d\n", x, y, z);
	else if (x <= z)
	         printf("Temos %d <= %d <= %d\n", x, z, y);
             else 
	         printf("Temos %d <= %d <= %d\n", z, x, y);
    } 
    else if (x <= z)
        	printf("Temos %d <= %d <= %d\n", y, x, z);
         else if (y <= z)
                   printf("Temos %d <= %d <= %d\n", y, z, x);
              else
                   printf("Temos %d <= %d <= %d\n", z, y, x);

    system("PAUSE");
    return 0;
}

---------------------------------------------------------------------------
  OUTRA SOLUÇÃO (do Problema 1.20) 
---------------------------------------------------------------------------
/*
 * Arquivo: prog1.20b.c
 * --------------------
 * Este programa é uma solução do Problema 1.20 do Caderno
 * de Exercícios: dados três números, imprimi-los em ordem
 * crescente.
 */
#include <stdio.h>

int main()
{
  int x, y, z, t;

  printf("Forneca 3 inteiros (separados por brancos): ");
  scanf("%d %d %d", &x, &y, &z);

  if (x > y) {
    t = x;
    x = y;
    y = t;
  }
  /* agora x <= y */

  if (x > z) {
    t = x;
    x = z;
    z = t;
  }
  /* agora x <= y e x <= z */

  if (y > z) {
    t = y;
    y = z;
    z = t;
  }
  /* agora x <= y <= z */

  printf("Temos %d <= %d <= %d.\n", x, y, z);

  system("PAUSE");
  return 0;
}

Last modified: Mon Mar 24 19:51:22 BRT 2008