Ir para conteúdo
cristian2000

pedir dois numeros ao utilizador e meter em ordem crescente

Recommended Posts

Usa uma troca XOR bit-a-bit:

 

a^=b^=a^=b;

 

Ou faz o tradicional bubble sort:

 

aux = a;
a = b;
b = aux;

Só faz uma condição antes para garantir que o primeiro fique sempre com o maior valor, ou o segundo.

 

if(a >= b) //ficará em ordem decrescente

if(a <= b) // ficará em ordem crescente

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora


  • Conteúdo Similar

    • Por Luísa Brandão
      Olá, alguém poderia me ajudar nesses exercícios de fila e pilha? Agradeço desde já (:
       
       

    • Por luandias
      Pessoal BLZ?  sou estudante de AGRONOMIA e temos a disciplina de INTRODUÇÃO A COMPUTAÇÃO. esse exercício É do novo conteúdo. ESTOU COM MUITAS DÚVIDAS. 
      Não faço a mínima ideia de como se faz, pois a professora ainda não ensinou. Poderiam me dar dicas de como resolve-ló? 
      Valeu e obrigado! 
      1. Escreva um programa que imprima os índices de todos os elementos de
      uma matriz 10x10. Use estrutura de repetição com variável de controle em sua solução.
    • Por luandias
      Pessoal BLZ?  sou estudante de AGRONOMIA e temos a disciplina de INTRODUÇÃO A COMPUTAÇÃO. esses exercicios são dos novos conteúdos. ESTOU COM MUITAS DÚVIDAS. 
      no 1° só consegui resolver o programa até o teste do numero válido utilizando "WHILE" as parte finais não consegui.
       O 2° não faço a mínima ideia de como se faz, pois a professora ainda não ensinou.
      Valeu e obrigado! 
       
      1. Escreva um programa que receba um número inteiro positivo, verifique e informe se ele é
      ou não um número triangular. Obs.: Um número é triangular quando é resultado do produto
      de três números inteiros consecutivos.
      Exemplo:
      24 = 2 x 3 x 4. Cuidado com o fato do usuário informar valor inválido!
       
       
      2. Escreva um programa que imprima os índices de todos os elementos de
      uma matriz 10x10. Use estrutura de repetição com variável de controle em sua solução.
    • Por MatheusMColi
      Estou tentando resolver o seguinte problema:

       
      "Neste problema, você irá receber 100 strings e deve devolver estas strings de maneira ordenada segundo a ordem lexicográfica. As strings fornecidas terão, no máximo, 80 caracteres e estarão denotadas apenas com letras do alfabeto (sem dígitos nem símbolos especiais). Entretanto, as letras poderão estar escritas em maiúsculas e minúsculas e isto não deve ter   influência na ordenação ao final.
       
      1.    Entrada. 100 strings com até 80 caracteres cada, escritas com letras do alfabeto (a até z) em maiúsculas ou minúsculas. Cada string é apresentada em uma linha;
      2.    Saída. As strings apresentadas na entrada ordenadas de maneira lexicográfica. Cada string deve ser apresentada em uma linha."

      Minha maior dúvida é como eu faço pra a máquina não diferenciar as letras maiúsuclas das minúsculas.
      Se alguém puder me dá uma luz agradeço.

    • Por Brunow0
      Preciso sabe se estou alocando memória corretamente no meu código. Conto com a ajuda de vocês!
      O exercício pede o seguinte:
      Crie um programa de cadastro simples de agenda (em memória) com inclusão de novas entradas e alteração, consulta, exclusão e pesquisa (ordenada) de entradas já existentes.
       
      #include <stdio.h> #include <stdlib.h> #include <string.h> int op=0,op1,qcad=0,i=0,x,y; char name[50]; struct contato { char nome[50]; char email[50]; char telefone[15]; }; void cadastrar (struct contato *c) {     printf("\nDigite o nome: ");     gets(c.nome);     strupr(c.nome);     printf("Digite o email: ");     gets(c.email);     printf("Digite o telefone: ");     gets(c.telefone);     i++;     do     {     printf("\nDeseja cadastrar mais? \n1-SIM \n2-NAO\n");     scanf("%d%*c", &op1);     fflush(stdin);         if (op1==1)         {         c=(struct contato*)(realloc(c,(qcad+1)*sizeof(struct contato)));             if (c==NULL)             {             printf("\n ERRO // MEMORIA INSUFICIENTE");             exit(1);             }             qcad++;             cadastrar(c);         }     }while (op1!=2); } void altera (struct contato *c) {     printf("Digite o nome: ");     gets(name);     strupr(name);     for (x=0,y=-1;x<i;x++)     {         if (strcmp(name,c[x].nome)==0)         {         y=x;         }     }     if(y<0)         {         printf("\nNOME NAO CADASTRADO\n\n");         system("pause");         }     else         {         printf("\nDigite o novo nome: ");         gets (c[y].nome);         strupr(c[y].nome);         fflush(stdin);         printf("\nDigite o novo email: ");         gets (c[y].email);         fflush(stdin);         printf("\nDigite o novo telefone: ");         gets(c[y].telefone);         fflush(stdin);         } } void ordena (struct contato *c) {     char nomeaux[50];     char emailaux[50];     char telefoneaux[15];     for (x=1;x<i;x++)     {         for (y=x;y>0;y--)         {             if (strcoll(c[y].nome, c[y-1].nome) < 0)             {                 strcpy(nomeaux,c[y].nome);                 strcpy(emailaux,c[y].email);                 strcpy(telefoneaux,c[y].telefone);                 strcpy(c[y].nome,c[y-1].nome);                 strcpy(c[y].email,c[y-1].email);                 strcpy(c[y].telefone,c[y-1].telefone);                 strcpy(c[y-1].nome,nomeaux);                  strcpy(c[y-1].email,emailaux);                   strcpy(c[y-1].telefone,telefoneaux);             }         }     } } void consulta(struct contato *c) {      if (i==0)     {     printf("\nNENHUM CADASTRO\n\n");     system("pause");     }     else     {         ordena(c);         for (x=0;x<i;x++)         {         printf("\n NOME: %s ",c[x].nome);         printf("\n EMAIL: %s ",c[x].email);         printf("\n FONE: %s \n",c[x].telefone);         system("pause");         }     } } void exclui(struct contato *c) {     for (x=0,y=-1;x<i;x++)     {         if (strcmp(name,c[x].nome)==0)         {         y=x;         }     }         if(y<0)         {         printf("O nome nao existe\n");         }         else         {         printf("Deseja excluir? \n1 - SIM \n2 - NAO\n");         scanf("%d%*c",&op1);             if (op1==1)             {             strcpy(c[y].nome,c[i-1].nome);             strcpy(c[y].email,c[i-1].email);             strcpy(c[y].telefone,c[i-1].telefone);             i--;             c=(struct contato*)(realloc(c,(i)*sizeof(struct contato)));             qcad--;             printf("EXCLUIDO COM SUCESSO\n");             }         } } void pesquisa(struct contato *c) {      printf("Digite o nome: ");      gets(name);      strupr(name);     for (x=0,y=-1;x<i;x++)         {             if (strcmp(name,c[x].nome)==0)             {             y=x;             }         }             if(y<0)             {             printf("O nome nao existe\n");             system("pause");             }             else             {             printf("\n NOME: %s ",c[y].nome);             printf("\n EMAIL: %s ",c[y].email);             printf("\n FONE: %s \n",c[y].telefone);             exclui(c);             system("pause");             } } void menu() {     struct contato *c=(struct contato*)malloc(qcad*sizeof(struct contato));      if (c==NULL)     {         printf("\n ERRO // MEMORIA INSUFICIENTE");         exit(1);     }     do     {     system("cls");     op=-1;     printf("******MENU******\n");     printf("1 - Cadastrar \n2 - Alterar \n3 - Consultar \n4 - Excluir \n5 - Pesquisar \n9 - Sair\n");     printf("****************\n");     scanf("%d%*c", &op);     switch (op)     {         case 1:             c=(struct contato*)(realloc(c,(qcad+1)*sizeof(struct contato)));             if (c==NULL)             {             printf("\n ERRO // MEMORIA INSUFICIENTE");             exit(1);             }             qcad++;             cadastrar(c);             break;         case 2:                 altera(c);                 break;         case 3:                consulta(c);                 break;         case 4:                 printf("Digite o nome: ");                 gets(name);                 strupr(name);                 fflush(stdin);                 exclui(c);                 if (i==0)                 {                 c=(struct contato*)(realloc(c,(qcad+1)*sizeof(struct contato)));                 }                 system("pause");                 break;         case 5:            pesquisa(c);            if (i==0)                 {                 c=(struct contato*)(realloc(c,(qcad+1)*sizeof(struct contato)));                 }                     break;         case 9:             return 0;             break;         default:             puts("Opcao invalida!!!\n\n\n");             system("pause");     }     }while (op!=9); } int main() {     menu();     return 0; }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.

Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: