使用c++编一个程序,让它用公式法解方程,并将结果以数学形式显示,不能用约等于,显示最简平方根。

例如a=5,b=12,c=3,显示Δ=84,X1=-(6+√21)/5,X2=-(6-√21)/5.这是我写的://这个程序使用公式法解方程#include<iostre... 例如a=5,b=12,c=3,显示Δ=84,X1=-(6+√21)/5,X2=-(6-√21)/5.
这是我写的:
// 这个程序使用公式法解方程#include <iostream>
#include <math.h>
using namespace std;

int main(){
system("title 公式法解方程");
int a,b,c;
double Δ;
double x1,x2;
std::cout<<"请输入方程中的a,b,c: \n";
std::cout<<"a=";
std::cin>>a;
std::cout<<"b=";
std::cin>>b;
std::cout<<"c=";
std::cin>>c;

Δ=b*b-4*a*c; if (Δ<0)
{
std::cout<<"方程无解!";
}
else
{
x1=(-b+sqrt(Δ))/(2*a);
x2=(-b-sqrt(Δ))/(2*a);
cout<<"\nΔ="<<Δ<<endl;
cout<<"X1="<<x1<<" "<<"X2="<<x2;
cout<<"\n";
}
system("pause");
return 0;
}

这个程序不能显示最简平方根也不能把能整除的两数表示成另一个整数....求大神解答
展开
 我来答
yang_bigarm
2013-02-11 · TA获得超过3949个赞
知道大有可为答主
回答量:1664
采纳率:100%
帮助的人:623万
展开全部
1 system("title 公式法解方程"); 这一句是什么意思?无意义,去掉
2 double Δ; 这个变量让我很费解,变量名请用英文字母加数字,避免奇怪的错误。
3 double x1,x2; 你已经告诉计算机,你的根是double类型了,就是小数,怎么可能得到整数呢?南辕北辙啊。
4 sqrt(Δ) 这个函数返回值是double类型,也是小数,这个是C语言标准规定好的,由不得你改的,所以也不可能得到一个你所谓的最简平方根。

至于你想要的显示最简平方根,这个需要你自己去定义一个数据类型,自己去设计它的计算和表示方法。更深入的内容,你需要看计算机代数系统或者符号计算系统方面的资料。
追问
1、使生成的程序窗口标题为:公式法解方程。
2、同意
3、...
4、...
好吧,我会去想的,分给你了..
追答
你结构体、类这些内容学过没有?这个题目肯定要自己定义类型的。
zjfaok
2013-02-11 · TA获得超过6806个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1621万
展开全部
这个程序只能显示约等于吧……sqrt(Δ)返回的就不一定是准确值,何况还有除法……输出可以用std::cout<<-b<<"√"<<Δ<<"/"<<(2*a);,至少可以保证结果准确。至于怎么化简,如果b或a是小数应该怎么处理,就要你自己想了,这可不是个容易的工作……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zir48817
2013-01-05 · TA获得超过6540个赞
知道大有可为答主
回答量:1.6万
采纳率:0%
帮助的人:2365万
展开全部
第一种方法比较简单,是用一元三次方程的求根公式,具体的算法,卡尔丹方法上的三次方程;

第二种方法是使用高斯 - 赛德尔迭代方法方程变形:=
(63X 3-114X 2 +42)/ 95
迭代初始值?(即,-1.0,0.4,和1.2三值)和代入的上面的方程,得到该值的x的值的近似值,然后放回代入这个方程继续解决,重复此操作,直到差值小于一个预定的误差值之前和之后的两个操作可以得到近似。

其他方式,包括牛顿 - 拉夫逊法等,但我认为以上两种方法是足够的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kjg60927
2013-01-07 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.6万
采纳率:0%
帮助的人:1847万
展开全部
原来写了一个,你看一下就可以了:
#包括
#包括
#包括中...... />浮动* ColPivot(浮动* C,廉政n);
无效的主要()
{
INT I,J;
持股量* X;
廉政n = 4;
浮子的[4] [5] = {4,-1,0,2,-1.0,-1,4,-1,0,-7.0,0,-1 ,4,-1,9.0,2,0,-1,4.0,0.0};
X = ColPivot(A [0],N);
(i = 0; I <N;我+ +)printf的(“X [%D =%F \?”,我,X [I]);
的getch();
}

持股量* ColPivot(浮* C,INT)
{
INT I,J,T,K;
持股量* X,P;
X =(浮动)的malloc(N * sizeof(浮动)的);
为(i = 0; <= n-2个,我+ +)
{
K = I;
为(J = I +1; J <= N-1,J + +)
(晶圆厂(*(C + J *(N +1)+ I))>(工厂(*(C + K *(N + 1)+ I))))K = J;
(k! = I)
(J = I,J <= N; J + +)
{
> P =(C + I *(N +1)+ J)*(C + I *(N +1)+ J)= *(C + K *(N +1)+ J );
*(C + K *(N +1)+ J)= P;
}
(J = I +1; <= n-1个; J + + )
{
P =(*(C + J *(N +1)+ I))/(*(C + I *(N +1)+ I));
(T = I,T <= N,T + +)
*(C + J *(N +1)+ T) - = P *(*(C + I *(N +1)+ T));
}
}
(i = n-1个;> = 0; - )
{
为(J = N-1 J> = i +1; J - )
(*(C + I *(N +1)+ N)) - = [J] *(*(C + I *(N +1) + j)条);
x [I] = *(C + I *(N +1)+ N)/(*(C + I *(N +1)+ I));
}
返回X;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shaoqi08110820
2013-01-02 · TA获得超过2508个赞
知道大有可为答主
回答量:1514
采纳率:100%
帮助的人:1738万
展开全部
Δ 为无效变量
把Δ 全换成d 就可以
变量的定义为 开头字母 或下划线
其他位置为数字,字母,下划线,美元符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式