函数名字随便你自己取,函数类型看你求解的是什么,如果是小数就double,float,整形的话就int,long,函数声明卸载main()函数的前面
邕宁网站建设公司成都创新互联,邕宁网站设计制作,有大型网站制作公司丰富经验。已为邕宁1000+提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的邕宁做网站的公司定做!
给你重写一个你对照看——
#include "stdio.h"
#include "math.h"
void zero(float a,float b){
printf("x1 = %f\n",-b/2/a);
printf("x2 = %f\n",-b/2/a);
}
void one(float a,float b,float d){
printf("x1 = %f\n",(-b+d)/2/a);
printf("x2 = %f\n",(-b-d)/2/a);
}
void two(float a,float b,float d){
printf("x1 = %f%+fi\n",-b/2/a,d/2/a);
printf("x2 = %f%+fi\n",-b/2/a,-d/2/a);
}
int main(int argc,char *argv[]){
float a,b,c,dlt;
printf("Input a, b, c(R: all)...\n");
scanf("%f%f%f",a,b,c);
if((dlt=b*b-4*a*c)==0)
zero(a,b);
else if(dlt0){
one(a,b,sqrt(dlt));
}
else
two(a,b,sqrt(-dlt));
return 0;
}
运行样例:
有问题续问。
#includestdio.h
double
val(double
a00,double
a11,double
a01,double
a10)
{
return
a00*a11-a01*a10;
}
void
main()
{
double
a1,b1,c1,a2,b2,c2;
double
m1,m2,m3;
printf("Please
input
a1,b1,c1\n");
scanf("%lf%lf%lf",a1,b1,c1);
printf("Please
input
a2,b2,c2\n");
scanf("%lf%lf%lf",a2,b2,c2);
m1
=
val(a1,b2,a2,b1);
m2
=
val(c1,b2,c2,b1);
m3
=
val(c1,a2,c2,a1);
if(m1==0){
if(m2==0
m3==0)
printf("无数解\n");
else
printf("无解\n");
}else
printf("x=%lf,y=%lf\n",m2/m1,-m3/m1);
}
这个是先求行列式的值,然后判断其是否为0,讨论解的情况,当有唯一解的时候,输出x和y的值。
val()函数用于计算2x2行列式的值。
有不明白的地方可以追问,望采纳:)
#include "stdio.h"
void hanshu(int a,int b,int c){
int x,y,z;
z=b*b-4*a*c;
if(a==0)
printf("该方程不是一元二次方程");
else if(a!=0z0) // 这里不需要在设置a!=0这个条件
printf("该一元二次方程无实数解");
else if(a=!0z=0) // 同样不需要设置a!=0这个条件
{ // 如果一个分支中有多条语句,一定要用{}
printf("该一元二次方程有两个相同的实数解");
x=(z-b)/2a;
y=x;
}
else
printf("该一元二次方程有两个不同的实数解");
x=(z-b)/2a;
y=(b*(-1)+z*(-1))/2a;
return x,y; // return 只能返回一个值,这个语句的结果是返回y的值,具体请看逗号表达式
} // 缺少}
void main()
{
int a,b,c;
scanf("%d %d %d",a,b,c); //在使用变量之前要先定义
printf("%d %d",hanshu(x),hanshu(y)); // 你定义的hanshu(int a,int b, int c)有三个int类型的参数,()中放置的是向函数传递的参数!!!
}
你可以在函数hanshu()中直接打印出结果而不是返回出来,因为一个函数只能返回一个值!
如下:
#include stdio.h
void hanshu(dobule a, double b, double c)
{
double x,y,z;
z=b*b-4*a*c;
if(a==0)
printf("该方程不是一元二次方程");
else if(z0)
printf("该一元二次方程无实数解");
else if(z=0)
{
x=(z-b)/2a;
y=x;
printf("该一元二次方程有两个相同的实数解: %lf %lf", x, y);
}
else
{
x=(z-b)/2a;
y=(b*(-1)+z*(-1))/2a;
printf("该一元二次方程有两个不同的实数解: %lf %lf", x, y);
}
}
int main(void)
{
double a,b,c;
scanf("%lf %lf %lf",a,b,c);
hanshu(a,b,c);
return 0;
}
如果你想在主函数main()中使用计算结果,可以利用指针!
没有。C语言没有现在的函数可以用来解方程,毕竟C语言不是专门用来进行数值计算的语言。如果要进行科学计算,最好学其他的语言。像lingo, matlab,fortran等都是用于科学计算的。
c语言一元二次方程编程是#include iostream 。#include cmath。using namespace std。int main()。{float a,b,c;float x1,x2; cinabc;float dlt=b*b-4*a*c;if(dlt=0){x1=-b/2/a+sqrt(dlt)。/2/ax2=-b/2/a-sqrt(dlt)/2/a。
形如x=p或(nx+m)=p(p≥0)的一元二次方程可采用直接开平方的方法解一元二次方程.如果方程化成x²=p的形式,那么可得x=±p;(x²=p,x=±根号p)如果方程能化成(nx+m)=p(p≥0)的形式,那么nx+m=±p。
简洁的语言:
C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。
实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
提供的控制语句具有结构化特征,如for语句、if...else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。