Ir ao conteúdo

Posts recomendados

Postado

Preciso incrementar um vetor que diga a quantidade de vezes que cada número ocorreu. Exemplo: "O número 1 ocorreu 2 vezes." "O número 12 ocorreu 8 vezes" não sei o que eu faço pra incrementar um vetor que faça isso.

#include <stdio.h>
#include <string.h>
int num, media, maior,soma, qtd=0,impar,menor=99999999;
int main(){
//le números positivos do teclado, até que o número zero seja digitado.
    printf("digite numeros ou 0 para sair\n");
    scanf("%d",&num);
    if(num!=0 && num % 2 == 0){
            qtd = qtd + 1;
            maior = num;
            if (num>num){
            	maior = num;
		 }
			else if(maior==0){
				maior = num;
			}
            soma = soma+num;
            media = (soma/qtd);
			return main();
 		  }
 	else if(num % 2 != 0 ){
 		  	qtd = qtd + 1;
 		  	if (num<menor){
 		  	menor=num;
 		  	}
 		  	if (num>num){
            	maior = num;
		 }
		 	soma = soma+num;
            media = (soma/qtd);
 		  	return main();
		   }

			//exibir um relatório na tela descrevendo os seguintes itens:

 		  	//Quantos números foram lidos.
 		  	printf ("quantidade de numeros lidos: %d\n",qtd);

 		  	//O maior numero lido.
       	 	printf ("o maior numero: %d\n",maior);

 		  	//A média dos números lidos.
        	printf ("a media dos numeros lidos: %d\n",media);

        	//O menor número ímpar lido (caso algum número ímpar tenha sido digitado).
        	printf ("o menor numero impar lido: %d\n",menor);
 			}

 

  • Obrigado 1
Postado

Cara uma ideia não muito boa porém funcional é a seguinte:

Leia o número e se não existir armazene em um vetor (na última posição lida, como uma fila),

leia essa posição e crie outro vetor e incremente a quantidade.

 

EX:

Vetor 1 [1 , 999, 56, 3, 8]

 

Vetor 2 [1, 1 ,1 ,1 ,1]

 

Entrada do teclado: 999

 

número existe logo não insere.

posição do número 1.

vetor2[posição] += 1;

Vetor 2 [1, 2, 1, 1, 1]

 

O algoritmo ficaria assim, porém tente abstrair a ideia e fazer o seu próprio:

#include <stdio.h>
#define max 99999

int main()
{
    int vetor1[max], vetor2[max];
    int pos, num, sizeVet, encontrado, i = 0;
    
    while(1){
        printf("Digite um numero: ");
        scanf("%d", &num);
        
        
        if(num != 0){
            for( i = 0; i < sizeVet; i++){
                if(num == vetor1[i]){
                    encontrado = 1;
                    pos = i;
                    break;
                }
                encontrado = 0;
            }
            
            if(encontrado == 0){
                vetor1[sizeVet] = num;
                vetor2[sizeVet] = 1;
                 sizeVet++;
            }else{
                vetor2[pos] += 1;
            }
            
        }else{
            break;
        }
        
    }
    
    printf("Vetor 1: [ ");
    for( i = 0; i < sizeVet; i++){
           printf("%d ", vetor1[i]);
    }
    printf(" ]\n\n");


   printf("Vetor 2: [ ");
    for( i = 0; i < sizeVet; i++){
           printf("%d ", vetor2[i]);
    }
    printf(" ]\n\n");
    
    return 0;
}

 

Obs: Caso você tenha algum conhecimento a mais ou queria aprofundar um pouco utilize a função "Pair" do c++, ela se encontra na biblioteca <utility>

  • Curtir 1
  • Amei 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!