谁能解释一下这个程序里指针函数的用法?
该程序是计算方程ax^2+bx+c=0的根。在输入函数中,直接定义a,b,c为指针,那a,b,c所指的对应值在哪里?在判别式void root函数中,只需要定义a,b,c的类型就可以了吗?为啥不用定义指针a,b,c?在主函数中的输入,为啥a,b,c又被定义为输入地址?希望前辈能解释一下,谢谢#include <stdio.h>
#include <math.h>
void output(float r1,float r2);
void input(float *a, float *b, float *c)
{
printf("Enter three values of a b and c:");
scanf("%f%f%f",a,b,c);
}
void root(float *r1,float *r2,float a,float b,float c)
{
*r1=(-b+sqrt(b*b-4*a*c))/2;
*r2=(-b-sqrt(b*b-4*a*c))/2;
}
int main()
{
float a,b,c,r1,r2;
input(&a,&b,&c);
if(b*b-4*a*c<0)
printf("No real solution!\n");
else
{
root(&r1,&r2,a,b,c);
output(r1,r2);
}
return 0;
}
void output(float r1,float r2)
{
printf("x1=%f x2=%f",r1,r2);
}