Ir ao conteúdo
  • Cadastre-se
robmaggot

RESOLVIDO Troca de valores: A fica igual a B, e B fica igual a A.

Recommended Posts

Olá!

 

Preciso de um programa que leia dois valores inteiros A e B, e depois troque os valores das variáveis, de tal forma que B passe a ter o valor originalmente atribuído a A e A passe a ter o valor originalmente atribuído a B.

 

Eu tentei fazer o seguinte:

#include <stdio.h>#include <stdlib.h> main (){    int a, b;     printf ("O valor de 'a' e: ");    scanf ("%d", &a);    printf ("O valor de 'b' e: ");    scanf ("%d", &;     a = b;    b = a;     printf ("Logo, trocando os valores, 'a' vale %d e 'b' vale %d.\n", a, ;     system ("pause");}

O problema é que se eu forneço um valor x para a e um valor y para b, o programa me fornece que a = y e b = y.

 

Creio que preciso criar uma terceira variável c para poder concluir o exercício... mas não consigo pensar em como executar isso. Alguém poderia me ajudar?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Isto se chama Swap, crie uma terceira variável.

int aux;b = aux;b = a;a = aux;

Valeu, @DolbyCpp! Mas no caso ficaria:

aux = b;b = a;a = aux;

Pois aux guardaria o valor de b; b guardaria o valor de a; e a guardaria o valor de aux que é o valor de b.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer com ponteiros

 

void troca (int *a, int *{  int aux;  aux=*a;  *a=*b;  *b=aux;}int main( ) {  int x=3, y=5;  troca(&x, &y);  printf(“x=%d  y=%d\n”, x, y);  return 0;}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×