⑴ 用c語言求ax^2+bx+c=0 的解,我寫的運行不了,幫我找找錯誤吧(初學者)
有些常識性錯誤。我一個個給你指出來。
1.
scanf("%f%f%f,&a,%b,%c"); //引號的位置和b、c前面的符號錯了
改為 scanf("%f%f%f",&a,&b,&c);
2.printf("方程是:%.3f*x*x+%.3f*x+%.3f=0\n",a,b,c);
//float數據用%f表示就行了,不知道你還搞個.3來干什麼
改為 printf("方程是:%f*x*x+%f*x+%f=0\n",a,b,c);
3.
if(a=0) //要用==號來表示比較,=號只能賦值.
if (b=0) //你要學會用{}來表示if的嵌套,不然,程
if(c=0) //序默認的是,若if中的條件不滿足,則跳
printf("無窮根"); //過該if語句執行下一行,沒起到作用
else printf("無解");
else
printf("%f\n",-c/b);
改為:
if(a==0) //不過建議這里最好寫成if(abs(a)<0.00001),因為根據編
{ //程規范化的要求,float型(浮點數)不要與0比較,判斷它
if (b==0) //是否為0的方法是,看它是否在一定誤差(如0.00001)內
{ //,下同。
if(c==0)
{
printf("無窮根");
}
else printf("無解");
}
else printf("%f\n",-c/b);
}
4.
else
if(d<0)
//else包含的語句如果不只一句,要用{}將它括起來,不然默認只執行第一句
printf("無解");
else
printf ("x1=%f,x2=%f",(-b+sqrt(d))/2/a,(-b-sqrt(d))/2/a);
} //除法的表達有點亂,而且錯了
改為:
else
{
if(d<0) printf("無解");
else printf ("x1=%f,x2=%f",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
}
}
樓主具備一定的編程能力,但是細節問題不少啊。好好加油!
⑵ c語言求ax²+bx+c=0的解
#include<stdio.h>
#include<math.h>
#definedeatapow(b,2)-4*a*c
intmain()
{
doublea,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
if(deata<0)printf("方程無解 ");
elseif(deata==0)printf("方程有兩個相同的解:%lf",(-b/2*a));
elseif(deata>0)printf("方程有兩個不一樣的解分別為%lf%lf",(-b+sqrt(deata))/2*a,(-b-sqrt(deata))/2*a);
return0;
}
(2)c語言求ax平方十bx十c0的實數解擴展閱讀
二次函數y=ax²+bx+c的意義
1、a的符號確定拋物線的開口方向。
2、a,b共同確定拋物線的對稱軸x=﹣b/2a
3、c確定拋物線與y軸的交點(0,c)是在x軸的上方、下方或原點.
4、b²-4ac的符號確定拋物線與x軸的位置關系。
5、若△=b²-4ac>0,設拋物線與x軸的兩個交點為A(x₁,0),B(x₂,0),則①A,B的中點(x₁+x₂/2,0)為拋物線的
對稱軸與x軸的交點(﹣b/2a,0),即x₁+x₂/2=﹣b/2a
⑶ C語言:求ax^2+bx+c=0方程的解
C語言:求ax^2+bx+c=0方程的解過程如下:
#include <stdio.h>
#include <math.h>
int main()
{
// 定義變數
double a, b, c, determinant, root1,root2, realPart, imaginaryPart;
printf("Enter coefficients a, b and c: ");//提示輸入三個參數
scanf("%lf %lf %lf",&a, &b, &c); //輸入三個系數
determinant = b*b-4*a*c; //求出δ的值
// 判斷如果determinant 大於0,方程就有兩個實數根
if (determinant > 0)
{
// sqrt() 函數求出平方根
root1 = (-b+sqrt(determinant))/(2*a);
root2 = (-b-sqrt(determinant))/(2*a);
printf("root1 = %.2lf and root2 = %.2lf",root1 , root2);
}
//有兩個相等的實數根
else if (determinant == 0)
{
root1 = root2 = -b/(2*a);
printf("root1 = root2 = %.2lf;", root1);
}
//沒有實數根,只有虛數根
else
{
realPart = -b/(2*a); //獲取根的實部
imaginaryPart = sqrt(-determinant)/(2*a);//獲取根的虛部
printf("root1 = %.2lf+%.2lfi and root2 = %.2f-%.2fi", realPart, imaginaryPart, realPart, imaginaryPart); //列印虛數根
}
return 0;
}
測試驗證:
輸入 a, b and c: 2.3
4
5.6
根是: -0.87+1.30i and -0.87-1.30i
⑷ C語言編程,求一元二次方程 ax2+bx+c=0 的解,謝謝
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
for (int i=0;i<2;i++)
{
double a,b,c,delta,p,q;
cin>>a>>b>>c;
delta=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(fabs(delta))/(2*a);
if (delta>=0)
cout<<p+q<<endl<<p-q<<endl;
else
{
cout<<p<<"+j"<<q;
cout<<endl<<p<<"-j"<<q<<endl;
}
}
return 0;
}
(4)c語言求ax平方十bx十c0的實數解擴展閱讀:
return表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return後面的參數指定。return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。
如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。
如果函數名前有返回類型定義,如int,double等就必須有返回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值。
⑸ 求一元二次方程ax2+bx+c=0的解。a,b,c為任意實數。c語言編程
#include<stdio.h>
#include<math.h>
int main(void){
double a,b,c;
double x1,x2,x,t,p,q
printf("輸入一元二次方程的系數a,b,c:");
scanf("%lf %lf %lf",&a,&b,&c);
t=b*b-4*a*c;
if(a==0&&b==0&&c==0)
printf("方程無窮解! ");
if(a==0&&b==0&&c!=0)
printf("方程無解! ");
if(a==0&&b!=0){
x=-c/b;
printf("方程有一個根:x=%.2f ",x);
}
if(a!=0&&b!=0){
if(t==0){
x=-b/(2*a);
printf("方程有兩個相同的實根:x1=x2=%.2f ",x);
}
if(t>0){
x1=(-b+sqrt(t))/(2*a);
x2=(-b-sqrt(t))/(2*a);
printf("方程有兩個不同實根:x1=%.2f x2=%.2f ",x1,x2);
}
if(t<0){
p=(-b)/(2*a);
q=sqrt(-t)/(2*a);
printf("方程有兩個不同虛根:x1=%.2f+%.2fi x2=%.2f-%.2fi ",p,q,p,q);
}
}
return 0;
}
(5)c語言求ax平方十bx十c0的實數解擴展閱讀
main()
{
float a,b,c;
x09float temp;//計算b*b-4*a*c
x09float num;//開根號
x09float x1,x2;//方程的根
x09printf("Enter a,b,c:");
x09scanf("%f %f %f",&a,&b,&c);
x09temp=b*b-4*a*c;
x09num=sqrt(temp);
x09if(temp>0) //兩個不同實根
x09{
x09x09x1=(-b+num)/(2*a);
x09x09x2=(-b-num)/(2*a);
x09x09printf("x1=%0.2f,x2=%0.2f ",x1,x2);//保留兩位輸出
x09}
x09if(temp==0)//一個相同實根
x09{
x1=x2=(-b)/(2*a);
printf("x1=x2=%0.2f ",x1);//保留兩位輸出
x09}
x09if(temp
⑹ 用c語言編寫:求方程ax2+bx+c=0的實數根。a,b,c由鍵盤輸入,a≠0且b2-4ac>0;謝謝!
#include<stdio.h>
#include<math.h>
floatx1,x2;
main()
{
voidf1(floata1,floata2,floata3);
voidf2(floatb1,floatb2,floatb3);
voidf3(floatc1,floatc2,floatc3);
floata,b,c,t;
printf("Inputa=,b=,c= ");
scanf("a=%f,b=%f,c=%f",&a,&b,&c); //輸入格式為a=1,b=5,c=6;
t=b*b-4*a*c;
if(fabs(t)<=1e-6) // 判斷t==0 的情況。
f1(a,b,c);
else
{
if(t>1e-6) // t>0的情況
f2(a,b,c);
else
f3(a,b,c);
}
}
voidf1(floata1,floata2,floata3)
{
x1=x2=-a2/(2*a1);
printf("x1=x2=%f ",x1);
}
voidf2(floatb1,floatb2,floatb3)
{
floatdisc;
disc=sqrt(b2*b2-4*b1*b3);
x1=(-b2+disc)/(2*b1);
x2=(-b2-disc)/(2*b1);
printf("x1=%f x2=%f ",x1,x2);
}
voidf3(floatc1,floatc2,floatc3)
{
floatdisc,t1,t2;
disc=sqrt(4*c3*c1-c2*c2);
t1=-c2/(2*c1);
t2=disc/(2*c1);
printf("x1=%f+%fi ",t1,t2);
printf("x2=%f-%fi ",t1,t2);
}
⑺ 用c語言語言求求方程ax^2+bx+c=0的實數根,abc由鍵盤輸入,a不等於0且b^2—4a
/*一.關於自動解一元二次方程*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double a,b,c,del,k;
s:
printf ("a=");scanf ("%lf",&a);
printf ("b=");scanf ("%lf",&b);
printf ("c=");scanf ("%lf",&c);
del=pow (b,2)-4*a*c;
if (a==0) if (b==0&&c==0) printf ("If you want,it can be anything~");
else if (b==0&&c!=0) {printf ("Get out,don't ask me!\n");exit (0);}
else printf ("%.0lfX+%.0lf=0\nX=%lf",b,c,-c/b);//a為0時為一元一次方程
else if (0==del) printf ("有唯一解:%lfX^2+%lfX+%lf=0\nX=%lf",a,b,c,-b/(2*a));//del等於0
else if (0>del) printf ("無實數解!");
else printf ("%lfX^2+%lfX+%lf=0\nX1=%lf\nX2=%lf",a,b,c,(-b+sqrt(del))/2*a,(-b-sqrt(del))/2*a);
printf ("\ncontinue?");
scanf ("%d",&k);if (k==1) goto s;
return 0;
}
⑻ 【C語言】求ax^2+bx+c=0方程的解。
scanf("%lf,%lf,%lf",&a,&b,&c);
是lf不是1f,你寫錯了。