Jump to content

[C] Ajuda: Comutar o n.º 3456->6543 (Resolvido)


Recommended Posts

Posted

;)Viva!!! tenho uma duvida!

faça um programa que peça ao utilizador um numero inteiro e apareça no ecra de forma invertida:

EXEMPLO:

    nº introduzido pelo utilizador

 

    3456

o nº aparece 6543

sei que atraves de divisoes sucessivas o restos da divisao vai-me me dar o numero invertido!

Como faço em linguagem c?? :wallbash:

Posted

Exactamente como disseste, usando o resto da divisão inteira por 10, 100, 1000, etc.

Exemplo:


int numero = 123456;
int div = 10
int num = 0;

num = numero % div;
printf("%d", num);

div *= 10;

num = numero % div;
printf("%d", num);

div *= 10;

// continua....
....

Apenas te mostrei um exemplo mas convém fazeres isso com um ciclo. 👍

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Posted

😁 será assim? nao me corre

#include<stdio.h>
main()
{
int numero, resto, conta=0;
printf("introduza um numero\n");
scanf("%d",&numero);

  while(numero>=0)
    {
    numero=numero/10;
    resto=resto%10;
    conta=resto++;
    }
    printf(" a %d\n",conta);
  fflush(stdin);
  getchar();
Posted
#include<stdio.h>
main()
{
int numero=0, div=10, num=0;
printf("introduza um numero: ");
scanf("%d\n",&numero);

num = numero % div;

do{

    printf("%d", num);
    div = div * 10;
    num = numero % div;

}while(num> 0);

}

Assim à pressa deve ser algo como isto. Mas não testei e não tenho a certeza que funciona. Testa tu e se não der corrige os erros 👍

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Posted

@suzyNão é bem assim, mas está lá perto

#include<stdio.h>
main()
{
int numero, resto, conta=0;
printf("introduza um numero\n");
scanf("%d",&numero);

  while(numero>=1) // se fosse while (numero >= 0) tinhas um ciclo infinito. porque qualquer numero positivo dividido por outro numero positivo é sempre >= 0
    {
    conta *= 10;  // "coloca" um zero no fim do conta onde se vai colocar o ultimo digito do numero
    conta += numero%10;  // "coloca" no fim do conta o ultimo digito do numero.
    numero = numero/10;  // "apaga" o ultimo digito do numero
    // nao precisas do "resto"    
    }
  printf(" a %d\n",conta);
  fflush(stdin);
  getchar();
}
}

@Hipnoted também serve  👍

Posted

Já pensaste no algoritmo ou ainda estás a zeros? Penso que seria melhor mostrares aquilo em que já pensaste antes de te começarmos a ajudar 👍

1- Introduzes o numero .

2- Convertes para uma string. 

 itoa( numero, myCharString, 10 ); 

3- Imprimes a string do fim para o inicio.

/ing

I used to have a life ... but i bought a programmable machine in 1982 ...

Posted

1- Introduzes o numero .

2- Convertes para uma string. 

 itoa( numero, myCharString, 10 ); 

3- Imprimes a string do fim para o inicio.

/ing

"3- Imprimes a string do fim para o inicio."

E como fazes isso? Com 1 /ing no cout? :S

Posted

E como fazes isso? Com 1 /ing no cout? :S

*** OFFTOPIC ****

Hm não era bem isso, eu pretendia para números ou letras, acho que o stor quer que nos fassamos isso de maneira que "simplesmente" seja feito um output "virado do avesso" seja do que for

presumo que perguntes devido ao que perguntas-te noutro post.

presumo também que tenhas alguma resistência ao estudo, bem como na perda do teu precioso tempo a encontrar soluções...

normalmente não sou muito participativo em foruns...

mas...como hj estou bem disposto, aqui vai um incentivo... mas com um pequeno senão  ?

a solução é :

I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQoNCmludCBtYWluKHZvaWQp

DQp7DQogIGNoYXIgc3RyMVtdID0gIlN0cmluZyBhIGludmVydGVyIDopIjsNCiAgY2hhciBzdHIy

WzgwXSwgKnAxLCAqcDI7DQoNCiAgcDEgPSBzdHIxICsgc3RybGVuKHN0cjEpIC0gMTsNCg0KICBw

MiA9IHN0cjI7DQoNCiAgd2hpbGUocDEgPj0gc3RyMSkNCiAgICAqcDIrKyA9ICpwMS0tOw0KDQog

ICpwMiA9ICdcMCc7DQoNCiAgcHJpbnRmKCIlcyAlcyIsIHN0cjEsIHN0cjIpOw0KDQogIHJldHVy

biAwOw0KfQ0K

Está codificada em base64.

procura um descodificador de base64 online e descodifica a solução.

/ING

I used to have a life ... but i bought a programmable machine in 1982 ...

Posted

hehe,.. tá boa! por acaso chamou-me a atenção e fui procurar forma rapida de descodificar e até foi muito simples! 🙂 Ora aqui está uma forma interecante de provocar a 'fome de conhecimento' por assim dizer 😉

RXN04SBmaXhlIQpQb3IgYWNhc28gZm9pIGxvZ28gYSBwcmltZWlyYSBjZW5hIHF1ZSBtZSBhcGFy

ZWNldSBuYSBwZXNxdWl6YSBkbyBnb29nbGUgcG9yICJkZXNjb2RpZmljYXIgY

mFzZTY0Ig==

cool stuffs to check.

http://blog.zxcoders.com//

Posted

a solução é :

I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQoNCmludCBtYWluKHZvaWQp

DQp7DQogIGNoYXIgc3RyMVtdID0gIlN0cmluZyBhIGludmVydGVyIDopIjsNCiAgY2hhciBzdHIy

WzgwXSwgKnAxLCAqcDI7DQoNCiAgcDEgPSBzdHIxICsgc3RybGVuKHN0cjEpIC0gMTsNCg0KICBw

MiA9IHN0cjI7DQoNCiAgd2hpbGUocDEgPj0gc3RyMSkNCiAgICAqcDIrKyA9ICpwMS0tOw0KDQog

ICpwMiA9ICdcMCc7DQoNCiAgcHJpbnRmKCIlcyAlcyIsIHN0cjEsIHN0cjIpOw0KDQogIHJldHVy

biAwOw0KfQ0K

Está codificada em base64.

procura um descodificador de base64 online e descodifica a solução.

/ING

Posso não entender de C++ mas não sou nenhum otário... Enfim:

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

int main(void)
{
  char str1[] = "String a inverter ";
  char str2[80], *p1, *p2;

  p1 = str1 + strlen(str1) - 1;

  p2 = str2;

  while(p1 >= str1)
    *p2++ = *p1--;

  *p2 = '\0';

  printf("%s %s", str1, str2);

  return 0;
}

@http://makcoder.sourceforge.net/demo/base64.php

Já agora...

aW5naW5oZWlpcm8gc2UgbmFvIHBhcnRpY2lwYXMgbXVpdG8gZW0gZm9ydW5zIG1ha

XMgdmFsZSBuYW8gcGFydGljaXBhcmVzIHBhcmEgcGFyZWNlciBxdWUgdGVucyBwaWFk

YS4uLiBtYXMgZGUgcXVhbHF1ZXIgbWFuZWlyYSBvYnJpZ2Fkby4uLg==

Posted

Posso não entender de C++ mas não sou nenhum otário... Enfim:

ninguem disse que eras otário.

se tens capacidade pra encontrar o base64 decoder, então tmb tens para pesquisar soluções para as tuas dúvidas.

quanto a opinares sobre a minha participação ou não no que quer que seja... dispenso obrigado.

o que postei não foi para ter piada. foi postado com outro fim.

/ing

I used to have a life ... but i bought a programmable machine in 1982 ...

Posted

Tá engraçada a ideia, mas original era encriptar com um algoritmo próprio e com uma chave privada... 😉

Ai dava bem mais trabalho... 🙂

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Posted

Ok desculpa o mal entendido então. De qualquer maneira foi isso que fiz, pesquisar, durante a pesquisa lembrei-me deste fórum e vim cá. Agora só ajuda quem quer não é? =P...

O inginheiiro ajudou-te, e ainda ficaste a aprender sobre base64. 😁

<3 life

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.