Anilto

Pares, impares

Oct 22nd, 2020
1,219
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. int main(){
  6.     setlocale(LC_ALL,"portuguese");
  7.     int n,somaPar=0,somaImpar=0,menor=999999;
  8.     /*  1) para detectar o menor número, deve-se iniciar a variável
  9.         com um número muito maior do que a faixa de valores
  10.         que se pretende entrar.
  11.  
  12.         2) Em um laço do ... while(cond) ou while (cond) {} deve-se sempre pensar no
  13.         critério de saída do laço, de modo que não interfira nos dados de entrada.
  14.         No seu caso, você usou como critério de saída (N != 10), mas 10 é um valor útil na entrada.
  15.         Uma vez que o programa prevê somente positivos, um bom critério de saída é
  16.         (n < 0), ou seja, ao digitar um numero negativo o programa encerra.
  17.  
  18.         3) Lembre-se que o número que digitar ainda vai ser considerado dentro dolaço, por isso
  19.         deve-se adotar uma estratégia que faça com que ele não interfira no cálculo.
  20.     */
  21.  
  22.     do{
  23.         printf("Informe algum número inteiro positivo: "); scanf ("%d",&n);
  24.         // sai do laço se for um numero negativo
  25.         // deve ser colocado como primeiro teste, para não interferir nos cálculos
  26.         if (n < 0) { break;}
  27.         // Verifica se é menor. Importante que a variável já contenha um número muito grande
  28.         // para que o primeiro teste já assuma que é menor
  29.         if(n < menor ){ menor = n; }
  30.  
  31.         if(n>0){
  32.             if(n%2==0){ printf("O número %d informado é: PAR\n\n",n); somaPar=somaPar+n; }
  33.             else{ printf("O número %d informado é: ÍMPAR\n\n",n); somaImpar=somaImpar+n; }
  34.         }
  35.  
  36.     }
  37.     while( 1 ); // O laço vai se repetir indefinidamente
  38.  
  39.     printf("\n***********\n RESULTADO\n***********\n");
  40.     printf("NÚMERO PAR");
  41.     if(somaPar==0){
  42.         printf("\nNão há somatorio de números pares.");
  43.     }else{
  44.         printf("\nSoma dos números pares: %d",somaPar);
  45.     }
  46.     printf("\n\nNÚMERO ÍMPAR");
  47.     if(somaImpar==0){
  48.         printf("\nNão há somatorio de números ímpares.");
  49.     }else{
  50.         printf("\nSoma dos números ímpares: %d\n",somaImpar);
  51.     }
  52.     printf("\nMenor número informado: %d \n\n\n",menor);
  53. }
  54.  
RAW Paste Data