Ir para conteúdo
Fórum Script Brasil
  • 0

[Ajuda] Exercicio


Adriano Resende

Pergunta

Fala pessoal,

Eu estou aprendendo com C++ na minha faculdade agora, gostaria pedir ajuda aqui que não consigo resolver o problema.

A questão é seguinte:

Crie dois vetores de inteiros com tamanho igual a 10. Solicite ao usuário que popule esses dois vetores, um de cada vez. Após isso, exiba na tela todos

os números digitados em ordem crescente (do menor para o maior). O usuário pode não querer informar os 10 números de cada vetor. Caso isso ocorra, basta o usuário informar um valor menor que zero para que o programa entende que esse é o último valor do vetor corrente e passa para o próximo passo.

E fiz o código mas não está completo pois tenho dúvidas.

Quando eu executo, ele começa com 6 e não consigo resolver pra começar 0 e não conheco um comando pra ordenar os numeros ou string algo assim.

#include <stdio.h>

int main(int argc, const char * argv[])
{
    int vetum[10], vetdois[10], i, paro;
    
    printf("\nFase 1 - Digite 10 numeros inteiros abaixo (OBS: Se pretende não informar o numero e pular o proximo passo, digite zero e depois ENTER):\n\n");

    for (i = 0; i < 10; i++) {
        
        while (vetum[i]==0) {
        
            printf("Numero %d: ", i);
            scanf("%d", &vetum[i]);
            if (vetum[i]==0){
                paro = 1;
                break;
            }
        }
        
        if (paro == 1) {
            break;
        }
    }

    printf("\nFase 2 - Digite 10 numeros inteiros abaixo novamente:\n\n");    
    
    for (i = 1; i < 11; i++) {
        printf("Numero %d: ", i);
        scanf("%d", &vetdois[i]);
    }

    return(0);
    
}

Eu não achei o comando pra ordenar no material do professor, pode ter passado na aula que eu faltei heueheuhe.

Espero que me ajudem.

Então é isso!

Abracos!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Não tive tempo para comentar mais deixei o mais didático possivel.

#include <stdio.h>
#include <stdlib.h>

int bubblesort(int *vetor, int tamanho);
void trocaBolha( int v[], int i);

int  *juntarVetor(int *vet01, int *vet02, int countVet01, int countVet02 );
void imprimirVetor(int *vetorCompleto, int tamanho);

int main(int argc, const char * argv[])
{
    int vetum[10], vetdois[10], i, sair;
    int countVet01 =0, countVet02=0;
    int *vetorCompleto= NULL; 
    
    printf("\nFase 1 - Digite 10 numeros inteiros abaixo (OBS: Se pretende não informar o numero e pular o proximo passo, digite zero e depois ENTER):\n\n");

    for (i = 0; i < 10; i++) 
    {
            printf("Numero %d: ", i+1);
               scanf("%d", &vetum[i]);
               if (vetum[i]<0)
                   break;
           countVet01++;
       
    }

    printf("\nFase 2 - Digite 10 numeros inteiros abaixo novamente:\n\n");    
    
    for (i = 0; i < 10; i++) 
    {
          printf("Numero %d: ", i+1);
          scanf("%d", &vetdois[i]);
            if (vetdois[i]<0)
                   break;
            countVet02++;
    }
    int somaCountVet = (countVet01 + countVet02);
    vetorCompleto = (int *)  malloc  ( somaCountVet * sizeof(int));
    vetorCompleto = juntarVetor(vetum, vetdois, countVet01, countVet02);
    
    bubblesort( vetorCompleto, somaCountVet );
    
    int tamanhoVetor = countVet01 + countVet02;
    imprimirVetor(vetorCompleto, tamanhoVetor);
    
    
    
    
    system("PAUSE");
    return(0);
}

  int  *juntarVetor(int *vet01, int *vet02, int countVet01, int countVet02 )
     {
        int *vetorCompleto = NULL;
        int tamanhoVetor = countVet01 + countVet02;
        int i =0, j =0;
        
        vetorCompleto = (int *)  malloc  ( tamanhoVetor * sizeof(int));
        
         for (i = 0; i < countVet01; i++) 
        {
             vetorCompleto[i] = vet01[i];  
             
        }
        
         for (j = 0; j < countVet02; j++) 
         {
             vetorCompleto[i] = vet02[j];
              i++; 
         }
              
       return vetorCompleto;
                    
     }
    
    int bubblesort (int *vetorCompleto, int tamanho)
    {
      int i;
        int trocou;

        do
        {
                tamanho--;
                trocou = 0;

                for(i = 0; i < tamanho; i++)
                {
                        if(vetorCompleto[i] > vetorCompleto[i + 1])
                        {
                                trocaBolha(vetorCompleto, i);
                                trocou = 1;
                        }
                }
        }while(trocou);
     
     
    }


         
         
    
    
    void imprimirVetor(int *vetorCompleto, int tamanho)
    {
         int i =0;
        
         for (i = 0; i < tamanho; i++)
             printf("%d \n", vetorCompleto[i]);
             
         
    }
    
    void trocaBolha( int v[], int i)
    {

    int aux=0; 

   aux=v[i];
   v[i] = v[i+1];
   v[i+1] = aux;

   }

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...