Ir ao conteúdo
  • Cadastre-se

C++ Fazer um algoritmo em c


Ir à solução Resolvido por devair1010,

Posts recomendados

Bom dia,

alguém pode me ajudar?

 

Fazer um algoritmo e seu respectivo código em C que:
a) Leia o valor de n (n <= 100) e os n valores numéricos e armazene em uma variável
b) Determine e imprima, para cada número que se repete no conjunto, o número de vezes em
que ele aparece repetido;
c) Elimine os números repetidos, formando um novo conjunto;
d) Imprima o conjunto obtido no item c.

 

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


int main()
{
    int i = 0, x = 0, c = 0, b = 0, vetor[10], vet[10], vetor1[10];

    for (i = 0; i < 10; i++) {
        printf("Digite o valor da posicao %i: ", i);
        scanf_s("%i", &vetor);
    }

    for (i = 0; i < 10; i++) {
        for (x = i + 1; x < 10; x++) {
            if (vetor == vetor[x]) {
                printf("O valor de %i se repete %d vezes\n", vetor, c);
                c = (vetor == vetor[x]);
            }
            if (vetor ! vetor[x]) {
            }
        }
        
    }
    printf("Os numeros sem repeticao sao: \n%i", vetor);
}
 

 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

7 minutos atrás, AnsiC disse:

@Felipe Eduardo R. Mesquita São 4 quesitos para solução do problema, você nos deve dizer qual é a sua dúvida.

 

Seu código não é a solução para o problema, porém, existem nele alguns conceitos que são parte de uma solução.

Eu preciso imprimir os valores que não foram repetidos

 

Eu melhorei um pouco o código:

 

#include <string.h>
#include <math.h>
#include <stdlib.h>


int main()
{
    int i = 0, x = 0, c = 0, b = 0, vetor[10], vet[10], vetor1[10];

    for (i = 0; i < 10; i++) {
        printf("Digite o valor da posicao %i: ", i);
        scanf_s("%i", &vetor);
    }

    for (i = 0; i < 10; i++) {
        for (x = i + 1; x < 10; x++) {
            if (vetor == vetor[x]) {
                printf("O valor de %i se repete %d vezes\n", vetor, c);
                c = (vetor == vetor[x]);
            }
            if (vetor != vetor[x]) {
                vetor1[10] = vetor[x];
            }
        }
        
    }
    printf("Os numeros sem repeticao sao: \n%i", vetor1[10]);
}

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

52 minutos atrás, Felipe Eduardo R. Mesquita disse:

Eu preciso imprimir os valores que não foram repetidos

Antes que Imprima o conjunto obtido no item c, você tem que responder os subproblemas A, B e C. Só assim mesmo.

 

O quesito / subproblema A) não foi devidamente respondido. Quando o enunciado diz um número n <= 100,  não é somente 10, mais sim, a toda lista de valores inteiros não negativos no intervalo [0 ... 100] que o usuário escolhe (digita). Isso é só o começo.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

agora, AnsiC disse:

Antes que Imprima o conjunto obtido no item c, você tem que responder os subproblemas A, B e C. Só assim mesmo.

 

O quesito / subproblema A) não foi devidamente respondido. Quando o enunciado diz um número n <= 100,  não é somente 10, mais sim, a toda lista de valores inteiros não negativos no intervalo [0 ... 100] que o usuário escolher (digitar). Isso é só o começo.

Há sim, eu coloquei 10 pra andar mais rápido...somente para teste.

  • Curtir 2
  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@Felipe Eduardo R. Mesquita      para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de postar , pois senão seu código fica faltando alguns caracteres como os  [ i ]  que sumiram do seu código ,  e você postou no tópico de c++  mas seu código que você postou é em  c  ,  pois os comandos do c++ são outros , apesar de que esses aí funcionam em c++ também , mas os comandos do c++ não funcionam no  c  , mas tudo bem , nesse caso funcionará bem ,  então seu código poderia ser assim   :

#include <string.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>
int main(){
    int i,j,c,vetor[10];

    for(i=0; i<10; i++){
        printf("Digite O Valor Da Posicao %2d : ",i+1);
        scanf("%d",&vetor[i]);
    }
    for(i=0; i<9; i++){
        c=0;
        for(j=i+1; j<10; j++){
            if(vetor[i] == vetor[j] && vetor[i]!=0){
                vetor[j]=0;
                c++;
            }
        }
        if(c > 0){
            printf("O Numero %d Saiu %d  Vezes\n",vetor[i],c+1);
            vetor[i]=0;   
        }
    }
    
    for(i=0;i<9;i++)             /* essa parte aqui não foi pedida no enunciado */
        for(j=i+1;j<10;j++){  /* mas ela serve para colocar os números em ordem Crescente */
            if(vetor[i]>vetor[j]){
                c=vetor[i];
                vetor[i]=vetor[j];   
                vetor[j]=c;
            }
        }
    
    printf("Os Numeros Sem Repeticao Sao : ");
    for(j=0;j<10;j++)
        if(vetor[j] != 0)
            printf("%d ",vetor[j]);

    getch();
    return 0;
} 

 

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

1 hora atrás, devair1010 disse:

@Felipe Eduardo R. Mesquita      para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de postar , pois senão seu código fica faltando alguns caracteres como os  [ i ]  que sumiram do seu código ,  e você postou no tópico de c++  mas seu código que você postou é em  c  ,  pois os comandos do c++ são outros , apesar de que esses aí funcionam em c++ também , mas os comandos do c++ não funcionam no  c  , mas tudo bem , nesse caso funcionará bem ,  então seu código poderia ser assim   :


#include <string.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>
int main(){
    int i,j,c,vetor[10];

    for(i=0; i<10; i++){
        printf("Digite O Valor Da Posicao %2d : ",i+1);
        scanf("%d",&vetor[i]);
    }
    for(i=0; i<9; i++){
        c=0;
        for(j=i+1; j<10; j++){
            if(vetor[i] == vetor[j] && vetor[i]!=0){
                vetor[j]=0;
                c++;
            }
        }
        if(c > 0){
            printf("O Numero %d Saiu %d  Vezes\n",vetor[i],c+1);
            vetor[i]=0;   
        }
    }
    
    for(i=0;i<9;i++)             /* essa parte aqui não foi pedida no enunciado */
        for(j=i+1;j<10;j++){  /* mas ela serve para colocar os números em ordem Crescente */
            if(vetor[i]>vetor[j]){
                c=vetor[i];
                vetor[i]=vetor[j];   
                vetor[j]=c;
            }
        }
    
    printf("Os Numeros Sem Repeticao Sao : ");
    for(j=0;j<10;j++)
        if(vetor[j] != 0)
            printf("%d ",vetor[j]);

    getch();
    return 0;
} 

 

Agraço muito pela sua ajuda...Que deus te abençoe. Pois clareou minha ideias. portanto resolvi fazer da seguinte forma para que os outros que forem ler esse tópico, não acharem que eu só queria a resposta.

Peço desculpas por ter colado o código dessa forma.

 

Segue o código novo abaixo:

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

int main()
{
    int 
	i = 0, 
	j = 0, 
	k = 0,
	seq[100], 
	novaseq[100],
	valor,
	r,
	n;
	
	     printf("Digite o numero de elementos da sequencia: ");
     scanf("%d", &n);
     
   	
    for (i = 0; i < n; i++) {
        printf("Digite o valor da posicao %i: ", i+1);
        scanf("%i", &seq[i]);
    }
  
    
    k=0;
    
    for (i=0; i<n; i++) {
    	
        valor = seq[i];
        r = 0;
        
        for (j=0; j<n; j++) {
        	
         if ((valor == seq[j]) & (seq[j] != -1)) {
	          r ++;	
       		  seq[j] = -1;
      		}
          	
		}
		
		
		if (valor != -1)  {
		   	printf("O numero %d aparece %d vezes:    \n", valor, r);
		   	novaseq[k] = valor;
		   	k++;
		   	
		   }
    		
	} 
	
	
 	printf("Nova sequencia:");
    for (i = 0; i < k ; i++) 
        printf("%d\t", novaseq[i]);

    
    	
  

}

 

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