Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Alberto Estenio

loop, vetores, moda, randomico, linguagem C

Recommended Posts

A partir de um vetor de 1000 valores inteiros gerados aleatoriamente
no intervalo [0, 149], deve-se mostrar os valores que não estão repetidos
e informar os três números que mais se repetiram.
Dica: Para contar, utilize um segundo vetor,
em que os índices correspondem ao conteúdo do vetor
aleatório.

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int vet1[150], vet2[1000], i, j,a,b,c;
    for(i = 0; i <= 149; i++){
        vet1 = i;}
    for (i = 0; i <= 999; i++){
        vet2 = rand()%149;}
 
// estou com dificuldade para montar uma lógica...  

    for (j = 0; j <= 999; j++){
        for(i = 0; i <= 149; i++){
            if (vet2[j] != vet1){
               printf("%d\n",vet2[j]);
            }
        }
    }
return 0;
}

 

help please :tw_flushed: :confused:

Editado por DiF
Botão CODE <>

Compartilhar este post


Link para o post
Compartilhar em outros sites
int vet1[150], vet2[1000], i,j;
    for(i = 0; i <= 149; i++){
        vet1[i] = i;}
    for (i = 0; i <= 999; i++){
        vet2[i] = rand()%149;}

//faltou indices

//para verifivar os termos acho q uma matriz ficaria bem [2][150] sendo q na linha[0] é quanrdado os valres verificados(nunca se repitindo), e na linha[1] é quardado o numero de vezes q o numero corespondente na coluna da linha[0]
//exemplo
//int v[10]={2,1,3,2,4,2,5,2,3,2};
//int m[2][10]={{2,1,3,4,5},
//				{5,1,2,1,1}};  //para utilizar uma matriz para isso é necessario usar contador para termos inseridos

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

então utiliza 2 vetores para a verificação, verif1[ 10 ] e verif2[ 10 ] com o mesmo conceito da matriz 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • me ajuda =[ ja tentei mais não consigo extrair estes valores

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
     int vetTudo[1000], i, j;
        for(i = 0; i <= 149; i++){
            vetTudo[i] = rand()%149;}
        
      	int numeros[150]  //segundo o intervalo só podem existir 150 numeros diferentes
        int contadorNumeros[150] //conta numeros inseridos no vetor numeros
        int q=0; //quntidade de valores exstentes no vetor numeros
    
    	for(i=0;i<150;i++)
          contadorNumeros[i]=0; //para evitar erros, como em qualquer contador, sempre zere ele
          
    	int achou=0; //variavel logica
    	
       for(i=0;i<1000;i++){
          if(q==0){
            numeros[q]=vetTudo[i];
            contadorNumeros[q]++;
            q++;
          }else{
            achou=0;
            j=0;
           while(j<q && achou==0){
             if(numeros[j]==vetTudo[i]){
                achou=1;
               	contadorNumeros[j]++;
             }else
               j++;
           }
            if(achou==0){
            	numeros[q]=vetTudo[i];
            	contadorNumeros[q]++;
            	q++;
            }
          }
        }

    algo assim...

    Editado por Gabriel_Moro

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int v [1000], i, j, v2[1005], pos[1000];
    
        int   a1, a2,  b1, b2,  c1, c2;
    
    
        for(i = 0; i > 1000; i++){
            v[i] = rand()%149;
            v2[i] = v[i];
            pos[i];
            }
            for(i = 0; i>1000; i++){
                for (j = 0; j >1000; j++){
                    if (v[i] != v2[j]);{
                        printf("%d",v[i]);}
                        }
                        i = 0;
                        j = 0;
                }
    
            for(i = 0; i>1000; i++){
                    for (j = 0; j >1000; j++){
                        if (v[i] == v2[j]){
                            a1 = pos[i];
                            a2 = v[i];
                   }}
                   printf("posicao %d valor %d",a1, a2);}
    
            for(i = 0; i>1000; i++){
                for (j = 0; j >1000; j++){
                   if (v[i] == v2[j]){
                        b1 = pos[i];
                        b2 = v[i];
                   }}
                   printf("posicao %d valor %d",b1, b2);}
    
            for(i = 0; i>1000; i++){
                for (j = 0; j >1000; j++){
                   if (v[i] == v2[j]){
                        c1 = pos[i];
                        c2 = v[i];
                   }}
                   printf("posicao %d valor %d",c1, c2);}
    
    
        return 0;
    }

     

    Editado por Alberto Estenio
    colocar no CODE

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    tu não aplicou a logica corretamente 

    25 minutos atrás, Alberto Estenio disse:
    
    int v [1000], i, j, v2[1005], pos[1000];

     

    tu tem um vetor de 1000 números gerados randomicamente de 0 a 149, quer dizer que só há 150 números diferentes o resto se repete, então v[1000], v2[150], v3[150], v2 guarda o numero lido no v, v3 que sempre esta na mesma posição do v2 conta quantas vezes o numero lido no v se repete no v2

    faltou o include < time.h >

    faltou alguns índices nos vetores

    34 minutos atrás, Alberto Estenio disse:
    
    for(i = 0; i > 1000; i++)

     

    esse for é i < 1000  //vetor vai ate 1000

    não esta estruturado adequadamente os for

    são 4 for independentes um do  outro

    1° gera valores do v

    2° zera v3 contador

    3°logica onde tu verifica os valores //+- como expliquei no outro post  //dentro desse for é importante que tu use o while para verificar o v com v2 juntamente com uma variável logica poque essa variável interrompe o while na posição correta

    4° mostra o v2 e v3

    lembre-se que quando tu começa a verificação o v2 e o v3 não possuem valores inseridos, então utilize uma variável quantidade que tu incrementa a medida que valores são inseridos no v2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    for(i=0;i<1000;i++){
          if(q==0){
            num[q]=v[i];
            cont[q]++;
            q++;
          }else{
            achou=0;
            j=0;
           while(j<q && achou==0){
             if(num[j]==v[i]){
                achou=1;
               	cont[j]++;
             }else
               j++;
           }
            if(achou==0){
            	num[q]=v[i];
            	cont[q]++;
            	q++;
            }
          }
        }

    a lógica que eu usei foi essa, tente compreende-la

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×