主题:(新手)数据类型
各位大大,我是一个初学者,有个问题让我很头疼:
运行环境:32位winxp,vc++6.0,一个解一元二次方程的程序
代码如下:
#include<stdio.h>
#include<math.h>
void main(void)
{
double a=0;
double b=0;
double c=0;
double delta=0;
double x1=0;
double x2=0;
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
delta=b*b-4*a*c;
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
printf("%.2f %.2f\n",x1,x2);
}
但无论输入的系数是多少,输出值都是-0.51 -0.51。
后来我把代码改成如下:
#include<stdio.h>
#include<math.h>
void main(void)
{
float a=0;
float b=0;
float c=0;
float delta=0;
float x1=0;
float x2=0;
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
delta=b*b-4*a*c;
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
printf("%.2f %.2f\n",x1,x2);
}
输出就正常了。为啥?
运行环境:32位winxp,vc++6.0,一个解一元二次方程的程序
代码如下:
#include<stdio.h>
#include<math.h>
void main(void)
{
double a=0;
double b=0;
double c=0;
double delta=0;
double x1=0;
double x2=0;
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
delta=b*b-4*a*c;
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
printf("%.2f %.2f\n",x1,x2);
}
但无论输入的系数是多少,输出值都是-0.51 -0.51。
后来我把代码改成如下:
#include<stdio.h>
#include<math.h>
void main(void)
{
float a=0;
float b=0;
float c=0;
float delta=0;
float x1=0;
float x2=0;
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
delta=b*b-4*a*c;
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
printf("%.2f %.2f\n",x1,x2);
}
输出就正常了。为啥?