Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

leo99i

Ordenar vetores em C.

Recommended Posts

Estou criando um projeto da faculdade e estou com dificuldade em realizar o item 5 do menu do meu programa que no caso é para ordenar os vetores.

Meu código está assim: Se alguém puder me ajudar a resolver o item 5 eu agradeço.

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
#define TAM 8

int main()
{
    setlocale(LC_ALL, "Portuguese");

    int menu, vetor1[TAM], vetor2[TAM], i, j, volta = 0, escolha, posicao, valor, acc=0;


    do
        {
            printf("=========CALCULADORA DE VETORES========= \n");
            printf("             MENU DE OPÇÕES \n");
            printf("1 - Gerar vetores \n");
            printf("2 - Imprimir vetores \n");
            printf("3 - Eliminar elemento do vetor \n");
            printf("4 - Pesquisar elemento nos vetores\n");
            printf("5 - Ordenar os vetores\n");
            printf("6 - Calcular operações matemáticas\n");
            printf("7 - Calcular métodos estatísticos \n");
            printf("8 - Total de elementos válidos \n");
            printf("9 - Sair \n");
            printf("==========================================\n");
            printf("Escolha a opção: ");
            scanf("%i", &menu);

            srand(time(NULL));


            switch(menu)
                {

                    case 1:
                        for(i=0; i < TAM; i++){
                            vetor1 = rand()%500+1;
                            vetor2 = rand()%500+1;
                        }
                        break;

                    case 2:
                        printf("Vetor 1: \n");
                        printf("[%i - ", vetor1[0]);
                        for(i=1; i< 7; i++){
                        printf("%i - ", vetor1);
                        }
                        printf(" %i]\n", vetor1[7]);
                        printf("\n\n");
                        printf("Vetor 2: \n");
                        printf("[%i - ", vetor2[0]);
                        for(i=1; i< 7; i++){
                        printf("%i - ", vetor2);
                        }
                        printf(" %i]\n", vetor2[7]);
                        printf("\n\n");
                        break;

                    case 3:
                        do{
                                printf(" Escolha de vetor \n");
                                printf("Digite 1 para o Vetor 1 \n");
                                printf("Digite 2 para o Vetor 2 \n");
                                printf("\nEscolha a opção: ");
                                scanf("%i", &escolha);
                        }
                        while(escolha <= 0 || escolha >= 3);
                        if(escolha == 1){
                            printf("Escolha a posição do vetor: ");
                            scanf("%i", &posicao);
                            if((vetor1[posicao] == 0) || (posicao < 0 || posicao >= 7)){
                                    printf("\nERRO!!!\n");
                            }
                            else{
                                    vetor1[posicao] = 0;
                                    printf("\nOperação realizada com sucesso!\n");
                                    }
                                }
                                else{
                                        printf("Escolha a posição do vetor: ");
                                        scanf("%i", &posicao);
                                if((vetor2[posicao] == 0) || (posicao < 0 || posicao >= 7)){
                                        printf("\nERRO!!!\n");
                                }
                                else{
                                        vetor2[posicao] = 0;
                                        printf("\nOperação realizada com sucesso!\n");
                                        }
                                    }
                                break;

                    case 4:

                            scanf("%i",&valor);
                            acc = 0;
                            for(i=0;i<2;i++)
                                {
                                    for(j=0;j<7;j++)
                                        {
                                            if(i==0)
                                                {
                                                    if(valor == vetor1[j])
                                                        {
                                                            acc = acc + 1;
                                                            printf("\nO valor %i está localizado na posição %i do Vetor 1\n", valor,j+1);
                                                        }
                                                }
                                            else
                                                {
                                                    if(valor == vetor2[j])
                                                        {
                                                            acc= acc + 1;
                                                            printf("\nO valor %i está localizado na posição %i do Vetor 2\n",valor,j+1);
                                                        }
                                                }
                                        }

                                }
                            if(acc == 0)
                                {
                                    printf("\nNão foi encontrado o %i em nenhuma dos veteores\n", valor);
                                }
                                break;
                    case 5:

                    case 9:
                        exit(0);
                            }


        }

    while(volta==0);


return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

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