Jump to content
  • 0
Gu_Killer

Ordenção por seleção em C

Question

Implementar o algoritmo da ordenação por seleção e incorporar no código um contador que retorne quantas comparações foram feitas e um contador que retorne quantas atribuições foram feitas.

 

O programa principal deve criar uma sequência aleatória de 1000 posições e então ordenar a sequência. Deve-se imprimir a sequência original, a sequência ordenada e os contadores de comparações e atribuições.

 

Para o upload, deve ser enviado um único arquivo .c não compactado... Arquivos com extensão .zip .rar e etc serão desconsiderados.

Não consigo fazer a inserção


 

#include <stdio.h>
#include <stdlib.h>
#define SIZE 1000

typedef int TipoIndice;

typedef struct item
{
    TipoIndice chave;
    int dado;
} TipoItem;


void insercao(TipoItem *A, TipoIndice n)
{
    TipoIndice i,j,Min;
    TipoItem x;
    for (i=0; i <= n-1; i++)
    {
        Min=i;
        for (j=i+1; j<n; j++)
            if (A[j].chave < A[Min].chave)
                Min = j;
        x = A[Min];
        A[Min] = A;
        A = x;
    }
}

void imprime(TipoItem *A, TipoIndice n)
{
    int i;
    for (i = 0; i < n; i++)
        printf("%d(%d) ", A.chave, A.dado);
}

void preenche(TipoItem *A, TipoIndice n)
{
    int i;
    srand ( time(NULL) );
    for (i = 0; i < n; i++)
    {
        A.chave = rand()%SIZE;
        A.dado = i;
    }
}

int main()
{
    TipoItem *vetor = malloc(sizeof(TipoItem)*SIZE);
    preenche(vetor,SIZE);
    insercao(vetor,SIZE);
    imprime(vetor,SIZE);
    system("pause");
    return 0;
}


 

Edited by Alaerte Gabriel
Adição da tag CODE

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By eduardobraz
      //Programa 26
       
      #include <stdio.h>
       
      int main(){
          
          int n, j, i, soma, aux;
          
          scanf("%d", &n);
          
          aux =1;
          
          for(i = 1; i <= aux; i++) {
              soma = 0;
              printf("%d = ", n);
              
              for(j = 1; j < n; j++){
                  if (n % j == 0){
                      soma += j;
                      printf("%d + ", j);
                  }
              }
              if(n == soma){
                  printf("= %d (NUMERO PERFEITO)\n", soma);
              }
              else{
                  printf("= %d (NUMERO NAO E PERFEITO)\n", soma);
              }
          }
          return 0;
      }
       
      Gostaria ajuda de vocês para remover um "+" antes do "=" 
       
      Exemplo 
      Coloco 6 na entrada.
       
      E na saída deveria sair 1 + 2 + 3 = 6
      mais sai 1 + 2 + 3 + = 6
    • By Motta
      As 10 principais linguagens de programação do mercado
    • By cleitonpacheco
      Preciso criar um programa em C que converta um vetor de 32 caracteres (recebidos do usuário), e os caracteres que não forem letras devem ser convertidos em espaço em branco mostrando no final o vetor resultante e a quantidade de espaços em branco. Como seria para fazer usando apenas a biblioteca 'stdio.h'?
       
       
    • By Billi de Kid
      totalizando, no máximo, 10 veículos. Para cada veículo, deverão ser fornecidos os seguintes dados:
      - marca do veículo
      - modelo - ano de fabricação
      - placa (formato XXX-YYYY; onde X denota as letras e Y denota os números da placa).
      O sistema deverá oferecer, ao usuário, as seguintes funcionalidades:
      - Listar os veículos cadastrados;
      - Inserir um novo veículo;
      - Listar os veículos filtrando-se por ano de fabricação;
      - Listar os veículos com o ano de fabricação acima de um certo valor especificado pelo usuário
      . - Listar os veículos filtrando-se pelo modelo.
      O sistema deverá armazenar os veículos ordenados pelo ano de fabricação, ou seja, ao inserir um novo veículo, este deve ser inserido em ordem crescente de ano de fabricação.
       
      POR FAVORR ALGUEM ME AJUDAAAA
    • By Thiago Hartmann
      Olá a todos!
      Sou iniciante em C, estou cursando o 1º semestre em ads na faculdade, estou fazendo um trabalho onde preciso elaborar um software para uma pizzaria, contendo cardápio, preço dos produtos, login e etc...

      estou com um problema em relação ao cardápio, onde não sei como somar os valores dos itens escolhidos pelo "cliente" através do cardápio se puderem me ajudar em relação a como colocar os preços referentes a cada produto para que eles somem automaticamente quando o cliente escolher o que deseja, pois não sei se devo fazer como constantes globais, ou uma função específica para isso.
       
      Obrigado!
       
      #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <conio.h> void entrada (){ printf ("*************************************\n"); printf ("**** Bem Vindo ****\n"); printf ("**** a ****\n"); printf ("**** UNIPIZZA ****\n"); printf ("*************************************\n"); } int menu (){ int op; printf (" \nCardápio \n\n"); printf ("1 - Pizzas. \n"); printf ("2 - Bebidas. \n"); printf ("3 - Finalizar o pedido.\n"); printf ("Digite a opção desejada: \n"); scanf("%d", &op); getch()-48; printf ("\n"); ; return op; } int controladorapizza (int op) { int oppizza, m, c, fc,qq, p; printf ("\n1 - Pizza Mussarela - 18,00 R$ \n"); printf ("2 - Pizza Calabresa - 18,00 R$ \n"); printf ("3 - Pizza Franco com Catupiry - 18,00 R$ \n"); printf ("4 - Pizza Quatro Queijos - 22,00 R$ \n"); printf ("5 - Pizza Portuguesa - 22,00 R$ \n"); printf ("Digite a opção desejada: \n"); scanf ("%d", &oppizza); switch (oppizza){ case 1: printf ("\nVocê adicionou pizza de Mussarela a sua bandeja!\n"); m = 18; break; case 2: printf ("\nVocê adicionou pizza de Calabresa a sua bandeja!\n"); c = 18; break; case 3: printf ("\nVocê adicionou pizza de Quatro Queijos a sua bandeja!\n"); qq = 22; break; case 4: printf ("\nVocê adicionou pizza de Portuguesa a sua bandeja!\n"); p = 22; break; default: printf ("\nValor incorreto, tente novamente\n"); break;} return oppizza; } int controladorabebida (int op) { int opbebida, s, sv, rl, rlv, r, rv; char str [10]; printf ("\n1 - Suco - 5,00 R$ \n"); printf ("2 - Refrigerante Lata - 4,00 R$\n"); printf ("3 - Refrigerante 2L - 13,00 R$\n"); printf ("Digite a opção desejada: \n"); scanf ("%d", &opbebida); switch (opbebida){ case 1: printf ("\nInforme o sabor do suco: \n"); scanf ("%s", &str); printf ("\nVocê adicionou suco de %s a sua bandeja!\n", str); sv = 5; break; case 2: printf ("\nInforme o refrigerante lata: "); scanf ("%s", &str); printf ("\nVocê adicionou %s lata a sua bandeja!\n", str); rlv = 4; break; case 3: printf ("\nInforme o refrigerante 2 Litros: "); scanf ("%s", &str); printf ("\nVocê adicionou %s 2 Litros a sua bandeja!\n", str); rv = 13; break; default: printf ("\nComando incorreto, tente novamente\n"); break;} return opbebida; } int main(){ setlocale(LC_ALL,""); int op,oppizza,opbebida, total; const int entrega = 5; entrada(); do{ op = menu(op); switch(op){ case 1: oppizza = controladorapizza(oppizza); break; case 2: opbebida = controladorabebida(opbebida); break; total = entrega+opbebida+oppizza; printf ("O total de seu pedido é: %d", total); } }while(op != 3 ); total = entrega+opbebida+oppizza; printf ("O total de seu pedido é: %d", total); printf("\n\n\n"); return 0; }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.