RS25 Postado Outubro 30, 2010 Denunciar Share Postado Outubro 30, 2010 Estou com dificuldades em implementar um programa que através de uma chamada de função determine as raízes de uma equação de segundograu.Segue a minha tentativa:#include<stdio.h> #include<conio.h> #include<math.h> int raizes(float a, float b, float c, float*x1, float*x2); main() { float a,b,c; float *x1; float *x2; printf ("\n\n\nInforme o valor do coeficiente a: "); scanf ("%f", &a); printf ("Informe o valor do coeficiente b: "); scanf ("%f", &b); printf ("Informe o valor do coeficiente c: "); scanf ("%f", &c); raizes(a,b,c,&x1,&x2); //chama a funcao getch(); } int raizes(float a, float b, float c, float*x1, float*x2) { float delta; float *x1; float *x2; delta=pow(b,2)-4*a*c; if(a!=0) { if (delta >=0) { *x1=(-b+sqrt(delta))/(2*a); *x2=(-b-sqrt(delta))/(2*a); printf ("\nx1=%.2f e x2=%.2f\n\n", x1, x2); } else { printf("não e possivel calcular"); } } }O compilador acusa vários erros que eu não consegui arrumar.Alguém poderia me ajudar?E o programa acusa os seguintes erros:Compilador: Default compilerExecutando g++.exe...g++.exe "C:\Users\eduardo\raiz.cpp" -o "C:\Users\eduardo\raiz.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" C:\Users\eduardo\raiz.cpp: In function `int main()':C:\Users\eduardo\raiz.cpp:19: error: cannot convert `float**' to `float*' for argument `4' to `int raizes(float, float, float, float*, float*)'C:\Users\eduardo\raiz.cpp: In function `int raizes(float, float, float, float*, float*)':C:\Users\eduardo\raiz.cpp:26: error: declaration of 'float*x1' shadows a parameterC:\Users\eduardo\raiz.cpp:27: error: declaration of 'float*x2' shadows a parameterExecução terminada Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Outubro 31, 2010 Denunciar Share Postado Outubro 31, 2010 float *x1; float *x2; Não precisa declarar como ponteiro, pode declarar como variável normal mesmo. Na função raizes por que declarar de novo float *x1 e *x2 se ele já tá declarado na definição dela? Pode retirar essa declaração dentro da função. Conserta também aqui: printf ("\nx1=%.2f e x2=%.2f\n\n", *x1, *x2);Faltou botar o * já que x1 e x2 são ponteiros.Agora não entendi porque retornar os valores de x1 e x2 se no main você não os usa?T+. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RS25
Estou com dificuldades em implementar um programa que através de uma chamada de função determine as raízes de uma equação de segundo
grau.
Segue a minha tentativa:
O compilador acusa vários erros que eu não consegui arrumar.
Alguém poderia me ajudar?
E o programa acusa os seguintes erros:
Compilador: Default compiler
Executando g++.exe...
g++.exe "C:\Users\eduardo\raiz.cpp" -o "C:\Users\eduardo\raiz.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\Users\eduardo\raiz.cpp: In function `int main()':
C:\Users\eduardo\raiz.cpp:19: error: cannot convert `float**' to `float*' for argument `4' to `int raizes(float, float, float, float*, float*)'
C:\Users\eduardo\raiz.cpp: In function `int raizes(float, float, float, float*, float*)':
C:\Users\eduardo\raiz.cpp:26: error: declaration of 'float*x1' shadows a parameter
C:\Users\eduardo\raiz.cpp:27: error: declaration of 'float*x2' shadows a parameter
Execução terminada
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.