c 二元一次方程 #include<stdio.h>

来源:百度知道 编辑:UC知道 时间:2024/05/25 11:07:59
#include<stdio.h>
#include<math.h>
void main(){
double a= 0,b=0,c=0;
double x1,x2;
double d = b*b-4*a*c;
printf("请输入三个系数(a,b,c):");
scanf("%f,%f,%f,",&a,&b,&c);
if(d>0){
x1 = (-b+sqrt(d))/(2*a);
x2 = (-b-sqrt(d))/(2*a);
printf("两个根分别为%f和%f",x1,x2);}
else if(d==0){
x1 = (-b)/(2*a);

printf("两个根分别为%f",x1);}
printf("error!!!");
}

输入1,2,1有错
不行 改成浮点型可以 为什么

#include<stdio.h>
#include<math.h>
void main(){
double a= 0,b=0,c=0;
double x1,x2;

printf("请输入三个系数(a,b,c):");
scanf("%f,%f,%f,",&a,&b,&c);
double d = b*b-4*a*c;
if(d>0){
x1 = (-b+sqrt(d))/(2*a);
x2 = (-b-sqrt(d))/(2*a);
printf("两个根分别为%f和%f",x1,x2);}
else if(d==0){
x1 = (-b)/(2*a);

printf("两个根分别为%f",x1);}
printf("error!!!");
}

float和double的输出根本没有区别。
要注意的是输入的时候,应该以%f和%lf相区分。
scanf("%f,%f,%f,",&a,&b,&c);
应改写为
scanf("%lf,%lf,%lf,",&a,&b,&c);
printf("error!!!"); 前面加else;
正确代码如下:

#include<stdio.h>
#include<math.h>
int main(){
double a,b,c;
double x1,x2,k;
double d = b*b-4*a*c;
printf("请输入三个系数(a,b,c):");
scanf("%lf,%lf,%lf,",&a,&b,&c);
if(d>0){
x1 = (-b+sq