Ir ao conteúdo
  • Cadastre-se

loop, vetores, moda, randomico, linguagem C


Posts recomendados

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:

Link para o comentário
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

 

Link para o comentário
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...

Link para o comentário
Compartilhar em outros sites

#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;
}

 

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...