Jump to content
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;
}

Share this post


Link to post
Share on other sites

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 clovis.sardinha
      Estou tentando mandar e-mail para vários usuários, mas só vai para o primeiro, quando tento colocar para vários dá erro. Alguém pode sugerir como fazer?
       
      if ($this->form_validation->run() == true) {             $this->load->model('emailReplayModel');             $user=$this->emailReplayModel->emailreplay(); //$user tem os dados dos usuários que quero mandar -veja abaixo                                  foreach ($user as &$i){                                  $this->email->from("atendimento@portaldapermuta.com", 'Portal da Permuta');             $this->email->subject("Continue seu cadastramento no Portal - é facil");             $email=$i['email'];             $this->email->to($email);             $msg=$this->load->view('usuario/emailReplayFinal',array($senha,'senha' =>$i['senha'],$nome,'nome'=>$i['nome_interessado']),TRUE);             $this->email->message($msg);             $this->email->send();                                         }             $this->email->send();                      if($this->email->send())    {                                      $this->session->set_flashdata('success', 'Mensagens enviadas.');                 redirect('admin/painel/painel_adm');             }  
      debug do $user:
      [user] => Array ( [0] => Array ( [id_interessado] => 23595 [nome_interessado] => CLOVIS [senha] => xxxx [email] => clovis.sardinha@teste2.com [data_inscricao] => 2020-10-12 14:35:43 ) [1] => Array ( [id_interessado] => 23596 [nome_interessado] => ANDRADE [senha] => xxxxx [email] => clovis.sardinha@teste3.com [data_inscricao] => 2020-10-12 16:22:27 ) )  
    • By mamotinho
      Boa noite! estou com dúvidas em relação a array, eu tenho uma procedure no SQL Server e essa procedure exibe uma lista de resultados, eu gostaria de pega o valor desses resultados e lista em um array para eu comparar com outro valor que vai ser selecionado em um select , tipo abaixo:
       
      $arraySelect = $db->prepare(exec WebSite.dbo.server_value_product 2);
      $arraySelect->execute();
      $arrayExemple = $arraySelect->fetchAll();

      procedure_list = array($arrayExemple);
       
      !in_array($valorSelect, $procedure_list){
         echo 'O Valor selecionado não existe nos resultados da procedure';
      }
       
       
      alguem sabe como posso listar o resultado da procedure em array. e sabe se o valor que procuro está entre os resultados da array.
    • By macpeace
      public function assignAll() { try { if ( isset( $this->view->tpldata ) ) { unset( $this->view->tpldata ); } //AQUI E O ERRO!!!!! foreach ( $this->data as $data ) { foreach ( $data as $key => $value ) { $this->assigndata[$key] = trim( $value ); } } } catch ( Exception $e ) { echo $e->getMessage(); exit; } return $this; } Invalid argument supplied for foreach() in C:\xampp\htdocs\Homem-das-casas\app\DB.class.php on line 726
       
      Não me conecta com a bd e não consigo sair daqui, preciso de ajuda por favor, pois nao entendo que esta errado!
    • By eiwes
      Fiz uma iteração foreach para gerar categorias e subcategorias, pois não queria fazer DOIS SELECTS, ficando assim:
       
      //----> Foreach para gerar a categoria, pois são vários items com as mesmas chaves, portanto agrupo foreach($exibeLista as $row){ $dlD[$row["nameD"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } //----> Foreach para gerar subcategorias foreach($exibeLista as $row){ $dLA[$row["nameP"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "idAss"=>$row["idAss"], "idT"=>$row["idT"], "nameP"=>$row["nameP"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } $fsHTML = []; $rateD = 0; $qtdAss = 0; if(is_array($dlD) || is_object($dlD)){ foreach ($dlD as $key => $ds) { if ($key <> '' && $key <> NULL) { $rateD += (($ds[0]["qtdR"]*100)/$ds[0]["qtdF"]); $qtdAss += count($dlD[$key]); //----> Array para inserir HTML da Categoria criada e criar accordion $fsHTML[] = ' <div class="col-md-12 col-sm-12 col-xs-12"> <div class="x_panel overflow_hidden padding-into-row-qsts bg-white-row filtro-on"> <span class="rateD">'.ceil($rateD/$qtdAss).'%</span> <span class="opcao-into-top">'.$ds[0]["idD"].' - '.$ds[0]["nameD"].' <a class="collapse-link open-filter-qsts border-radius8"><i class="fa fa-chevron-up"></i></a></span> <div class="x_content" style="display:none;padding-top:10px"> <div class="accordion" id="accordion" role="tablist" aria-multiselectable="true"> '; //----> Verificar se a subcategoria contém a categoria, se contém é incluída na array foreach ($dLA as $keys => $ass) { if($ass[0]["idD"] == $ds[0]["idD"] ){ if($ass[0]['idT'] <> 0){ $link = 't='.$ass[0]['idT']; }else{ $link = 'a='.$ass[0]['idAss'];} $fsHTML[] = ' <div class="panel"> <a class="panel-heading collapsed" href="/v/fs/st?mz=y&type=c&'.$link.'"> <span class="eficiencia-accordion">'.ceil(($ass[0]['qtdR']*100)/$ass[0]['qtdF']).'%</span> <h4 class="panel-title">'.$ass[0]['nameP'].'</h4> <span class="unicamente">'.$ass[0]['qtdR'].' respondido de '.$ass[0]['qtdF'].'</span> </a> </div> '; }//if ass }//foreach ass }//if ds //----> Aqui é aonde ocorre o ERRO! Era pra fazer o fechamento do Accordion e gerar uma nova DIV. //No índice [0] isso ocorre normalmente, porém no [1] ela agrupa todos os accordions. (abaixo farei a amostra) $fsHTML[] = '</div></div></div></div>'; }//foreach ds }//if verifica se é array e se é objeto return implode('', array_unique($fsHTML)); O correto seria assim:
       
      - Categoria
        - Subcategoria
        - Subcategoria
       
      - Categoria
       - Subcategoria
       - Subcategoria
       
       
      Como está acontecendo:
       
      - Categoria
        - Subcategoria
        - Subcategoria
       
      - Categoria
        - Subcategoria
        - Subcategoria
          - Categoria
            - Subcategoria
            - Subcategoria
              - Categoria
                - Subcategoria
                - Subcategoria
                  - Categoria
                    - Subcategoria
                    - Subcategoria
       
       
      Não consigo entender de jeito nenhum pq o primeiro fecha corretamente e a partir do segundo não.
      Alguém me ajuda?
       
       
    • By joaolepaus
      Boa tarde pessoal, não tenho muito conhecimento de PHP, mas estou tentando receber os dados via POST de um array, porem quando recebo esse array vem todos os dados referenete a todos os ids, mas na verdade eu quero receber somente os dados que estão com o id selecionado por checkbox.
      O código que estou usando para receber o POST é esse:
       
      $id = $_POST['idplano']; $operadora = $_POST['operadora']; $total = $_POST['total']; $img = $_POST['img']; $plano = $_POST['plano']; $acomodacao = $_POST['acomodacao']; $abrangencia = $_POST['abrangencia']; $segmento = $_POST['segmento']; $participacao = $_POST['participacao']; $valorFaixa = $_POST['valorFaixa']; for($i = 0; $i < count($id); $i++) { echo "| $id[$i] | $operadora[$i] | $total[$i] | $img[$i] | $plano[$i] | $acomodacao[$i] | $abrangencia[$i] | $segmento[$i] | $participacao[$i] | $valorFaixa[$i] |<br>"; } Os meus inputs estão nomeados assim: idplano[], operadora[] e assim vai.
       
      fiz o var_dump no post, notem que só tem 3 ids checked mas chega os dados de todos os ids. 
       
      array(12) { ["teste"]=> string(0) "" ["checked"]=> array(3) { [0]=> string(2) "34" [1]=> string(2) "30" [2]=> string(2) "38" } ["img"]=> array(25) { [0]=> string(17) "5efb353cd0df4.jpg" [1]=> string(17) "5efb353cd0df4.jpg" [2]=> string(17) "5efb353cd0df4.jpg" [3]=> string(17) "5efb353cd0df4.jpg" [4]=> string(17) "5efb353cd0df4.jpg" [5]=> string(17) "5efb353cd0df4.jpg" [6]=> string(17) "5efb353cd0df4.jpg" [7]=> string(17) "5efb353cd0df4.jpg" [8]=> string(17) "5efb353cd0df4.jpg" [9]=> string(17) "5efb353cd0df4.jpg" [10]=> string(17) "5efb353cd0df4.jpg" [11]=> string(17) "5efb332233b92.jpg" [12]=> string(17) "5efb332233b92.jpg" [13]=> string(17) "5efb332233b92.jpg" [14]=> string(17) "5efb332233b92.jpg" [15]=> string(17) "5efdd26866510.jpg" [16]=> string(17) "5efdd26866510.jpg" [17]=> string(17) "5efdd26866510.jpg" [18]=> string(17) "5efdd26866510.jpg" [19]=> string(17) "5efdd26866510.jpg" [20]=> string(17) "5efdd26866510.jpg" [21]=> string(17) "5efdd26866510.jpg" [22]=> string(17) "5efdd26866510.jpg" [23]=> string(17) "5efdd26866510.jpg" [24]=> string(17) "5efdd26866510.jpg" } ["total"]=> array(25) { [0]=> string(5) "74.78" [1]=> string(6) "143.23" [2]=> string(5) "186.2" [3]=> string(6) "159.14" [4]=> string(6) "206.89" [5]=> string(6) "118.23" [6]=> string(5) "153.7" [7]=> string(6) "131.36" [8]=> string(6) "183.91" [9]=> string(6) "117.98" [10]=> string(6) "144.82" [11]=> string(5) "179.6" [12]=> string(6) "207.38" [13]=> string(6) "235.12" [14]=> string(6) "283.91" [15]=> string(6) "202.17" [16]=> string(6) "242.62" [17]=> string(6) "252.54" [18]=> string(6) "303.05" [19]=> string(6) "220.68" [20]=> string(6) "264.76" [21]=> string(6) "303.72" [22]=> string(6) "364.53" [23]=> string(6) "494.16" [24]=> string(6) "593.03" } ["idplano"]=> array(25) { [0]=> string(2) "34" [1]=> string(2) "35" [2]=> string(2) "36" [3]=> string(2) "47" [4]=> string(2) "48" [5]=> string(2) "49" [6]=> string(2) "50" [7]=> string(2) "51" [8]=> string(2) "52" [9]=> string(2) "53" [10]=> string(2) "54" [11]=> string(2) "30" [12]=> string(2) "31" [13]=> string(2) "32" [14]=> string(2) "33" [15]=> string(2) "37" [16]=> string(2) "38" [17]=> string(2) "39" [18]=> string(2) "40" [19]=> string(2) "41" [20]=> string(2) "42" [21]=> string(2) "43" [22]=> string(2) "44" [23]=> string(2) "45" [24]=> string(2) "46" } ["operadora"]=> array(25) { [0]=> string(14) "Premium Saúde" [1]=> string(14) "Premium Saúde" [2]=> string(14) "Premium Saúde" [3]=> string(14) "Premium Saúde" [4]=> string(14) "Premium Saúde" [5]=> string(14) "Premium Saúde" [6]=> string(14) "Premium Saúde" [7]=> string(14) "Premium Saúde" [8]=> string(14) "Premium Saúde" [9]=> string(14) "Premium Saúde" [10]=> string(14) "Premium Saúde" [11]=> string(4) "Samp" [12]=> string(4) "Samp" [13]=> string(4) "Samp" [14]=> string(4) "Samp" [15]=> string(15) "Unimed Vitória" [16]=> string(15) "Unimed Vitória" [17]=> string(15) "Unimed Vitória" [18]=> string(15) "Unimed Vitória" [19]=> string(15) "Unimed Vitória" [20]=> string(15) "Unimed Vitória" [21]=> string(15) "Unimed Vitória" [22]=> string(15) "Unimed Vitória" [23]=> string(15) "Unimed Vitória" [24]=> string(15) "Unimed Vitória" } ["plano"]=> array(25) { [0]=> string(6) "Bronze" [1]=> string(17) "Infinity (TIPO 1)" [2]=> string(17) "Infinity (TIPO 1)" [3]=> string(17) "Infinity (TIPO 2)" [4]=> string(17) "Infinity (TIPO 2)" [5]=> string(22) "Personnalité (TIPO 1)" [6]=> string(22) "Personnalité (TIPO 1)" [7]=> string(22) "Personnalité (TIPO 2)" [8]=> string(22) "Personnalité (TIPO 2)" [9]=> string(6) "Bronze" [10]=> string(7) "Platina" [11]=> string(17) "Essencial (Prata)" [12]=> string(13) "Basico (Azul)" [13]=> string(22) "Personalizado (Branco)" [14]=> string(18) "Executivo (Branco)" [15]=> string(18) "Fácil Perfil (G2)" [16]=> string(18) "Fácil Perfil (G2)" [17]=> string(13) "Personal (G2)" [18]=> string(13) "Personal (G2)" [19]=> string(27) "Participativo Estadual (G2)" [20]=> string(27) "Participativo Estadual (G2)" [21]=> string(21) "Premium Nacional (G2)" [22]=> string(21) "Premium Nacional (G2)" [23]=> string(15) "VitoriaMed (G2)" [24]=> string(15) "VitoriaMed (G2)" } ["acomodacao"]=> array(25) { [0]=> string(12) "Ambulatorial" [1]=> string(10) "Enfermaria" [2]=> string(11) "Apartamento" [3]=> string(10) "Enfermaria" [4]=> string(11) "Apartamento" [5]=> string(10) "Enfermaria" [6]=> string(11) "Apartamento" [7]=> string(10) "Enfermaria" [8]=> string(11) "Apartamento" [9]=> string(12) "Ambulatorial" [10]=> string(12) "Ambulatorial" [11]=> string(10) "Enfermaria" [12]=> string(10) "Enfermaria" [13]=> string(10) "Enfermaria" [14]=> string(11) "Apartamento" [15]=> string(10) "Enfermaria" [16]=> string(11) "Apartamento" [17]=> string(10) "Enfermaria" [18]=> string(11) "Apartamento" [19]=> string(10) "Enfermaria" [20]=> string(11) "Apartamento" [21]=> string(10) "Enfermaria" [22]=> string(11) "Apartamento" [23]=> string(10) "Enfermaria" [24]=> string(11) "Apartamento" } ["abrangencia"]=> array(25) { [0]=> string(8) "Estadual" [1]=> string(8) "Estadual" [2]=> string(8) "Estadual" [3]=> string(8) "Estadual" [4]=> string(8) "Estadual" [5]=> string(8) "Estadual" [6]=> string(8) "Estadual" [7]=> string(8) "Estadual" [8]=> string(8) "Estadual" [9]=> string(8) "Estadual" [10]=> string(8) "Estadual" [11]=> string(20) "Grupo de Municípios" [12]=> string(20) "Grupo de Municípios" [13]=> string(8) "Estadual" [14]=> string(8) "Estadual" [15]=> string(20) "Grupo de Municípios" [16]=> string(20) "Grupo de Municípios" [17]=> string(20) "Grupo de Municípios" [18]=> string(20) "Grupo de Municípios" [19]=> string(8) "Estadual" [20]=> string(8) "Estadual" [21]=> string(8) "Nacional" [22]=> string(8) "Nacional" [23]=> string(8) "Nacional" [24]=> string(8) "Nacional" } ["segmento"]=> array(25) { [0]=> string(11) "Empresarial" [1]=> string(11) "Empresarial" [2]=> string(11) "Empresarial" [3]=> string(11) "Empresarial" [4]=> string(11) "Empresarial" [5]=> string(11) "Empresarial" [6]=> string(11) "Empresarial" [7]=> string(11) "Empresarial" [8]=> string(11) "Empresarial" [9]=> string(14) "Pessoa Física" [10]=> string(14) "Pessoa Física" [11]=> string(20) "Coletivo por Adesão" [12]=> string(20) "Coletivo por Adesão" [13]=> string(20) "Coletivo por Adesão" [14]=> string(20) "Coletivo por Adesão" [15]=> string(20) "Coletivo por Adesão" [16]=> string(20) "Coletivo por Adesão" [17]=> string(20) "Coletivo por Adesão" [18]=> string(20) "Coletivo por Adesão" [19]=> string(20) "Coletivo por Adesão" [20]=> string(20) "Coletivo por Adesão" [21]=> string(20) "Coletivo por Adesão" [22]=> string(20) "Coletivo por Adesão" [23]=> string(20) "Coletivo por Adesão" [24]=> string(20) "Coletivo por Adesão" } ["participacao"]=> array(25) { [0]=> string(45) "Integral (Sem cobrança de coparticipações)" [1]=> string(19) "Consulte o corretor" [2]=> string(19) "Consulte o corretor" [3]=> string(60) "Coparticipações nas consultas eletivas e de pronto socorro" [4]=> string(42) "Nas consultas eletivas e de pronto socorro" [5]=> string(19) "Consulte o corretor" [6]=> string(19) "Consulte o corretor" [7]=> string(22) "Nas consultas e exames" [8]=> string(22) "Nas consultas e exames" [9]=> string(22) "Nas consultas e exames" [10]=> string(22) "Nas consultas e exames" [11]=> string(42) "Nas consultas eletivas e de pronto socorro" [12]=> string(42) "Nas consultas eletivas e de pronto socorro" [13]=> string(42) "Nas consultas eletivas e de pronto socorro" [14]=> string(42) "Nas consultas eletivas e de pronto socorro" [15]=> string(22) "Nas consultas e exames" [16]=> string(22) "Nas consultas e exames" [17]=> string(25) "Somente em pronto socorro" [18]=> string(25) "Somente em pronto socorro" [19]=> string(22) "Nas consultas e exames" [20]=> string(22) "Nas consultas e exames" [21]=> string(22) "Nas consultas e exames" [22]=> string(22) "Nas consultas e exames" [23]=> string(45) "Integral (Sem cobrança de coparticipações)" [24]=> string(45) "Integral (Sem cobrança de coparticipações)" } ["valorFaixa"]=> array(25) { [0]=> string(26) "De 0 a 18 anos R$74.78 " [1]=> string(27) "De 0 a 18 anos R$143.23 " [2]=> string(27) "De 0 a 18 anos R$186.20 " [3]=> string(27) "De 0 a 18 anos R$159.14 " [4]=> string(27) "De 0 a 18 anos R$206.89 " [5]=> string(27) "De 0 a 18 anos R$118.23 " [6]=> string(27) "De 0 a 18 anos R$153.70 " [7]=> string(27) "De 0 a 18 anos R$131.36 " [8]=> string(27) "De 0 a 18 anos R$183.91 " [9]=> string(27) "De 0 a 18 anos R$117.98 " [10]=> string(27) "De 0 a 18 anos R$144.82 " [11]=> string(27) "De 0 a 18 anos R$179.60 " [12]=> string(27) "De 0 a 18 anos R$207.38 " [13]=> string(27) "De 0 a 18 anos R$235.12 " [14]=> string(27) "De 0 a 18 anos R$283.91 " [15]=> string(27) "De 0 a 18 anos R$202.17 " [16]=> string(27) "De 0 a 18 anos R$242.62 " [17]=> string(27) "De 0 a 18 anos R$252.54 " [18]=> string(27) "De 0 a 18 anos R$303.05 " [19]=> string(27) "De 0 a 18 anos R$220.68 " [20]=> string(27) "De 0 a 18 anos R$264.76 " [21]=> string(27) "De 0 a 18 anos R$303.72 " [22]=> string(27) "De 0 a 18 anos R$364.53 " [23]=> string(27) "De 0 a 18 anos R$494.16 " [24]=> string(27) "De 0 a 18 anos R$593.03 " } } Como que eu faria para pegar somente os dados referente aos ids selecionados no checkebox ? 
       
×

Important Information

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