cwarez Postado Outubro 18, 2010 Denunciar Share Postado Outubro 18, 2010 fala pessoal, tudo certim?bom, estamos estudando struct em c la na escoladai to com umas duvidaso prof quer que cria uma funcao que ler os pontos x,ystruct ponto { float x; float y;};, dai eu to fazendo assim#include <stdio.h>#include <stdlib.h>struct ponto { float x; float y; }; void ler_pontos(struct ponto P) { printf("Digite os pontos x,y:\n"); scanf("%f %f", &P.x, &P.y); } float imprimir_pontos(struct ponto P) { printf("\n(%f , %f)\n", P.x, P.y); } int main() { struct ponto pontos; ler_pontos(pontos); imprimir_pontos(pontos); system("PAUSE"); return 0; }o codigo ae ta exibindo(0.000 , 0.000)ele não ta lendo, qual meu erro ae pessoal? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Outubro 18, 2010 Denunciar Share Postado Outubro 18, 2010 O seu erro é nas funções. Você está passando a struct como valor, então na função uma nova cópia da struct está sendo gerada, e você está escrevendo nesta cópia. Quando ela volta para o main, a struct que você tem (pontos), não tem nenhum valor lido.Você deve fazer igual ao scanf, passar seu endereço. ler_pontos(&pontos). Obviamente, também deve arrumar a função correspondente para arrumar isso. Quando for ponteiro, troque de &P.x para &(P->x).Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
cwarez
fala pessoal, tudo certim?
bom, estamos estudando struct em c la na escola
dai to com umas duvidas
o prof quer que cria uma funcao que ler os pontos x,y
struct ponto {
float x;
float y;
};
, dai eu to fazendo assim
#include <stdio.h>
#include <stdlib.h>
o codigo ae ta exibindo
(0.000 , 0.000)
ele não ta lendo, qual meu erro ae pessoal?
Link para o comentário
Compartilhar em outros sites
1 resposta 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.