radioh Postado Dezembro 4, 2008 Denunciar Share Postado Dezembro 4, 2008 Ola Pessoal!Estou com dificuldades neste programa deve ler um número inteiro e escrever o número que resultada 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ênciade n dígitos x repetidos (operação inversa).O programa deve permitir a codificação/descodificação de mais do queum número na mesma corrida (“run”) e deve identificar todas assituações de erro.Por exemplo, se 277733444 for o inteiro lido, o programa pode codificá-lo1 2 3 7 2 3 3 4 :rolleyes: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Dezembro 4, 2008 Denunciar Share Postado Dezembro 4, 2008 O que você já fez?Qual a sua dificuldade?Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 radioh Postado Dezembro 6, 2008 Autor Denunciar Share Postado Dezembro 6, 2008 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 10main(){ 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;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Dezembro 6, 2008 Denunciar Share Postado Dezembro 6, 2008 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 radioh Postado Dezembro 8, 2008 Autor Denunciar Share Postado Dezembro 8, 2008 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 repetidosabraç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;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Dezembro 8, 2008 Denunciar Share Postado Dezembro 8, 2008 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: 2239999array[0][0] -> 2 /* número de vezes */array[0][1] -> 2 /* número */array[1][0] -> 1array[1][1] -> 3array[2][0] -> 4array[2][1] -> 9Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
radioh
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
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.