Ordenando valores
Publicado por Edson Jr 13/04/2009
[ Hits: 7.868 ]
Este "pequeno" programa foi escrito para ajudar uma pessoa que pediu ajuda numa comunidade de C/C++ no orkut, mas como o número máximo de caracteres disponíveis para escrever o programa era insuficiente, resolvi postar ele aqui.
/* Este programa demonstra o uso de while e mais alguns tópicos de C++ *Apesar de ser escrito em C++, ele pode ser "aplicado" em C. */ #include <iostream> //troque por stdio.h using namespace std; //não coloque essa linha em código C void using_while_five(); //este protótip de função é para o primeiro exercício void before_number(); //este protótipo de função é para o segundo exercício void ten_mumber(); //este protótipo de função é para o terceior exercício void zero_or_one(); //este protótipo de função é para o último exercício /* Apesar de estar usando já o conceito de funções, você pode fazer executáveis *idependentes para cada uma das funções. Ao decorrer do código vou mostrar como */ int main() { int opt; //esta variável será usada para selecionar qual função usar cout <<"Escolha uma das opcoes abaixo: \n"; cout <<" [1] - Para o primeiro exercicio\n"; cout <<" [2] - Para o segundo exercicio\n"; cout <<" [3] - Para o terceiro exercicio\n"; cout <<" [4] - Para o ultimo exercicio\n"; cout <<"Escolha: "; cin >> opt; //troque cout por printf e cin por scanf switch(opt) { case 1: using_while_five(); break; case 2: before_number(); break; case 3: ten_mumber(); break; case 4: zero_or_one(); break; } /* Quando você selecionar uma das opções, será enviado para dentro da função *correspondente. Se por acaso escolher uma opção inexistente o programa *termina. Depois que todas as instruções dentro da função forem executados *ela retorna para a chamadora (main()). Com o uso de break e por não haver *nenhuma outra instrução abaixo do bloco de switch (tirando o return), o *programa encerra */ return 0; //se quiser dar uma pequena pausa na saída do programa, escreva system("pause"); } //definição das funções void using_while_five() { int num[5],x; /* isto é um vetor. Um vetor é um conjunto de variáveis que compartilham o mesmo *identificador (nome). Importante: os vetores começam a contagem de zero */ int cont = 0; //esté é o contador usado para controlar o laço do while. //como o vetor começa do zero, será necessário colocar o contador //inicializado como zero. while(cont < 5) //ele vai de zero a 4 na verdade { cout <<"Entre com o valor No " << cont+1 <<": "; cin >> num[cont]; cont++; } /* Um vetor possui posições e essa são acessadas por um índice que é *justamente a variável de incremento. */ //agora vamos organizar o vetor, colocando os valores em ordem crescente. for(int i = 0;i < 5;i++) // por via das dúvidas, inicializer i no começo do bloco for(int j = i+1;j < 5;j++) if(num[i]>num[j]) { x = num[j]; num[j] = num[i]; num[i] = x; } /* O código acima serve para ordenar o vetor e será usado na função 3 - a dos 10 números*/ cout <<"O maior valor lido e: " << num[4] <<"\n"; } void before_number() { unsigned num; //somente valores positivos - se você digitar negativo "dá erro" cout <<"Entre com um valor: "; cin >> num; /* vamos usar o for para controlar o laço * Você vai entrar com um valor e o laço vai interagir até um valor antes * daquele que vc digitou */ for(int i = 0; i < num;i++) //se queiser coloque o i como 1 cout << i <<"\n"; } void ten_mumber() { int num[10],x; int cont = 0; while(cont < 10) //ele vai de zero a 9 na verdade { cout <<"Entre com o valor No " << cont+1 <<": "; cin >> num[cont]; cont++; } //agora vamos organizar o vetor, colocando os valores em ordem crescente. for(int i = 0;i < 10;i++) // por via das dúvidas, inicialize i no começo do bloco for(int j = i+1;j < 10;j++) // por via das dúvidas, inicialize j no começo do bloco if(num[i]>num[j]) { x = num[j]; num[j] = num[i]; num[i] = x; } cout <<"O menor valor lido e: " << num[0] <<"\n"; cout <<"O maior valor lido e: " << num[9] <<"\n"; } void zero_or_one() { int number; //numero que será digitado for(;;) //isto é um laço infinito, que será parado caso 0 ou 1 seja inserido { cout <<"Entre com um valor: "; cin >> number; if(number == 1 || number == 0) break; //isso faz com que o laço pare else{ if(!(number % 5)) cout <<"Numero divisivel por 5 \n"; else if(!(number % 7)) cout <<"Numero divisivel por 7\n"; else if(!(number % 9)) cout <<"Numero divisivel por 9\n"; else cout <<"\n"; //pula uma linha se todas as anteriores forem falsas } } /* O motivo de estar invetendo a lógica das expressões acima com o operador ! *é que se ela for verdadeira o if não é executado. A mesma expressão pode ser *escrita dessa maneira: if(number % 5 == 0) e as demais também */ } /* Veja que usei funções para desempenhar cada um dos exercícos, mas caso queira *fazer cada exercíco com seu respectivo executável, basta colocar o código que *está dentro de cada função dentro da main(), deixando somente a instrução return 0; * * Para C: * troque cout por printf; * troque cin >> por scanf; * não coloque a linha using namespace std; * troque a iostream por stdio.h * */
Calcular taxa de juros com constante em C
Estrutura condicional ternária
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
VMs e Interfaces de Rede desapareceram (12)
Instalação do drive do adaptador wiffi (7)