maria eduarda Posted December 8, 2019 at 12:16 PM Report Share #616805 Posted December 8, 2019 at 12:16 PM O código diz respeito à troca de duas variáveis, mas não entendo por que o valor final que o programa mostra é apenas o primeiro digitado. Por exemplo, se digito A=10 e B=15 quero que mostre A =15 e B =10, mas mostra A =10 e B = 10. Não percebo o erro. int main() { int x, y, *ptr1, *ptr2; cout << "\nDigite o x:"; cin >> x; cout << "\nDigite o y: "; cin >> y; ptr1 = &x; ptr2 = &y; y = *ptr1; x = *ptr2; printf("\nO valor de X: %d\n", x); printf("\nO valor de Y: %d\n", y); } Link to comment Share on other sites More sharing options...
Rui Carlos Posted December 8, 2019 at 08:18 PM Report Share #616806 Posted December 8, 2019 at 08:18 PM Alguma razão para usares apontadores? A forma mais simples de resolver o erro é evitando o uso de apontadores. Quanto ao problema, *ptr2 é um apontador para y. Logo, quando fazes x = *ptr2 está a colocar em x o valor de y, que nesse momento já foi modificado para ser igual a x. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
maria eduarda Posted December 9, 2019 at 06:07 PM Author Report Share #616812 Posted December 9, 2019 at 06:07 PM 21 horas atrás, Rui Carlos disse: Alguma razão para usares apontadores? A forma mais simples de resolver o erro é evitando o uso de apontadores. Quanto ao problema, *ptr2 é um apontador para y. Logo, quando fazes x = *ptr2 está a colocar em x o valor de y, que nesse momento já foi modificado para ser igual a x. Sim, eu apercebi-me deste erro. A razão era que eu deveria estar fazendo uma função à parte para utilizar os apontadores, que era o requerimento do exercício. Obrigada. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted February 14, 2020 at 06:56 AM Report Share #617340 Posted February 14, 2020 at 06:56 AM On 12/9/2019 at 6:07 PM, maria eduarda said: Sim, eu apercebi-me deste erro. A razão era que eu deveria estar fazendo uma função à parte para utilizar os apontadores, que era o requerimento do exercício. Obrigada. vais fazer isto : - crias realmente uma função como pede o enunciado mas não uses apontadores. deu ? podes explicar porque é que a apresentação dos dados na função main parece que a função não fez nada ? - agora em vez de mandares os valores, manda apontadores (como detesto esta expressão ...), porque razão passou a funcionar ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now