Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda no programa Codificar/Descodificar


radioh

Pergunta

Ola Pessoal!

Estou com dificuldades neste programa deve ler um número inteiro e escrever o número que resulta

da sua codificação ou descodificação com base nas seguintes regras:

1. (Codificar) – Substituir cada sequência de n dígitos x repetidos,

pelo par de dígitos nx ;

2. (Descodificar) – Substituir cada par de dígitos nx , pela sequência

de n dígitos x repetidos (operação inversa).

O programa deve permitir a codificação/descodificação de mais do que

um número na mesma corrida (“run”) e deve identificar todas as

situações de erro.

Por exemplo, se 277733444 for o inteiro lido, o programa pode codificá-lo

1 2 3 7 2 3 3 4

:rolleyes:

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Ola pessoal não estou a conseguir uma maneira de codificar e descodificar um numero , selecionei os pares e os impares para ver se ficava mais facil...se voces me ajudar!??

O codificar é por exemplo numero 277733444 codificar -> 1 2 3 7 2 3 3 4 -> ou seja 1 -> 2 ; 3-> 7 7 7; 2-> 3 3 ; 3-> 4 4 4 e descodificar e a operacao inversa ex : 1 2 3 7 2 3 3 4 -> descodificar -> 277733444

abraço

#include <stdio.h>

#include<iostream>

#define MAX 10

main()

{

int i, n=10, v[MAX],par[MAX],impar[MAX],contpar=0,contimpar=0;

for (i=0;i<n;i++)/*Iniciar*/

v=0;

for (i=0;i<n;i++)/*Iniciar*/

par=0;

for (i=0;i<n;i++)/*Iniciar*/

impar=0;

printf("Quantos digitos o numero vai ter ? \n");

scanf("%d",&n);

for (i=0;i<n;i++)

{

printf("Digite o numero %d :", i);

scanf("%d",&v);

}

printf("Codificar....\n");

for (i = 0; i<n; i++)

{

if (v % 2 == 0)

{

par=v;

contpar++;

}

else

{

impar=v;

contimpar++;

}

}

for (i=0;i<n;i++)

{

printf("Resultado dos par %d e dos impares %d\n",par,impar);

}

printf("Resultados dos par repetidos %d e impares repetidos %d\n", contpar,contimpar);

// pausa antes do fim

system("pause");

return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 0

Ficou horrível esta forma de fazer o programa.

Receba um número, transforme em string (com sprintf).

Aloque uma nova string com malloc, com o passar do tempo vá aumentando seu tamanho com realloc.

A cada vez que encontrar um número, veja até quantos números repetidos tem.

Quando souber isso, coloque o número de vezes e o número, respectivamente, na nova string.

Repita até terminar a string que o usuário passou,

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu ainda estou há aprender sobre a linguagem C agradeço a tua paciência

:wub: , numbers funciona com vector dinâmico , agora vou ver como tratar os numeros repetidos

abraço

#include <stdio.h>

#include <stdlib.h>

#include <iostream>

int main ()

{

int input,n,count=0;

int * numbers = NULL;

do {

printf ("Digite o numero (para terminar digite 0): ");

scanf ("%d", &input);

count++;

numbers = (int*)realloc(numbers, count * sizeof(int));

if (numbers==NULL)

{ puts ("Error (re)allocating memory"); exit (1); }

numbers[count-1]=input;

} while (input!=0);

printf ("Os numeros digitos:\n ");

for (n=0;n<count;n++)

printf ("%d\n",numbers[n]);

free (numbers);

system("pause");

return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 0

http://www.cplusplus.com/reference/clibrar...ib/realloc.html -> Example.

De qualquer forma, outra forma de fazer para você.

Leia a string, interprete-a e você pode guardar tudo em um array de int.

Exemplo da estrutura (int array[3][2]):

Input: 2239999

array[0][0] -> 2 /* número de vezes */

array[0][1] -> 2 /* número */

array[1][0] -> 1

array[1][1] -> 3

array[2][0] -> 4

array[2][1] -> 9

Abraços.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...