Ir ao conteúdo
  • Cadastre-se

C Vetor que gere 10 elementos


Posts recomendados

Cria os dois primeiros vetores com valores fixos. Depois você percorre cada posição do primeiro vetor comparando com cada posição do segundo (pode usar um for dentro do outro, ou uma função). Caso os valores sejam iguais, você verifica se esse valor já existe no terceiro vetor, caso não exista, você adiciona.

 

Use uma variável inteira para representar a posição de inserção no terceiro vetor, assim fica mais fácil de percorrê-lo depois.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Ana Clara Alves Nunes       seu código está bom ,  mas ali você está apenas incluindo os números que sejam iguais nos dois vetores ,  então faltou você gerar aleatoriamente os números ,  e para isso você pode usar a função rand  , e depois excluir os números que forem repetidos no vetor resultante ,  e no enunciado não pediu para ordenar os números , não , mas creio que seria interessante , pois fica mais fácil  observar o resultado final ,    então seu código com algumas modificações poderia ser assim   :

#include <stdio.h>  /* para usar os comandos de entada e saida ( scanf printf ) */
#include <conio.h>  /* para usar o comando getch     */
#include <time.h>   /* para usar o timer do pc       */
#include <ctype.h>  /* para usar o comando toupper   */
#include <stdlib.h> /* para usar o srand sem warning */
void imprimir(int w[],char p,int q){
    int a;
    printf("Vetor %c -> ",toupper(p));/* convert caractere para maiúculo      */
    for(a=0;a<q;a++)if( w[a] )printf("%d ",w[a]);/* imprime conteúdo do vetor */
    printf("\n");
}
int main(){
    srand(time(NULL));/* para não gerar o mesmo número sempre                 */
    int x[10],y[20],t[20]={},
        r[10],i,j,d=0, aux  ;
    printf("Gerando o Primeiro vetor . . . !\n");
    for(i=0;i<20;i++){
        y[i]     = rand()%100 + 1;/* gerar números de 1 até 100 */
        if(i<10){
            r[i] = rand()%100 + 1;/* gerar números de 1 até 100 */
            x[i]=r[i];
        }
    }   
    for(i=0;i<19;i++)
        for(j=i+1;j<20;j++      ){
            if(i < 10 && j < 10 ){
                if( x[i] > x[j] ){/* ordenando o vetor x */
                    aux  = x[i]  ;
                    x[i] = x[j]  ;
                    x[j] = aux   ;     
                
                    r[i] = r[j]  ;/* ordenando o vetor r */
                    r[j] = aux   ; 
                }
            }
            if(     y[i] > y[j] ){/* ordenando o vetor y */
                    aux  = y[i]  ;
                    y[i] = y[j]  ;
                    y[j] = aux   ;
            }
        }
    for(i=0;i<10;i++)
        for(j=0;j<10;j++)
            if(r[i] == r[j] && i != j)
                r[j] = 0;/* exclui os números repetidos colocando zero naquela posição */
    printf("Oops ! , desculpe acabei gerando o segundo vetor tambem . . . !\n");
    printf("Gerando valores para o vetor resultante...\n.\n.\n");
    for(i = 0 ; i<10 ; i++){
        j = 0;
        while( j < 20 ){
            if(y[j] == r[i] && i != j ){/* armazena os números iguas nos dois vetores */
                t[d]=r[i];
                d++;
            }
            j++;
        }
    }
    imprimir(x,'x',10);
    imprimir(y,'y',20);
    imprimir(t,'t',20);
    getch();
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!