C语言求一元二次方程解的函数问题 新手题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言求一元二次方程解的函数问题 新手题相关的知识,希望对你有一定的参考价值。
#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!=0&&z<0)
printf("该一元二次方程无实数解");
else if(a=!0&&z=0)
printf("该一元二次方程有两个相同的实数解");
x=(z-b)/2a;
y=x;
else
printf("该一元二次方程有两个不同的实数解");
x=(z-b)/2a;
y=(b*(-1)+z*(-1))/2a;
return x,y;
void main()
scanf("%d %d %d",&a,&b,&c);
printf("%d %d",hanshu(x),hanshu(y));
为什么不能运行?怎么修改?我的想法对吗?
能不能将这个程序修改一下,代码发上来
#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!=0&&z<0) // 这里不需要在设置a!=0这个条件
printf("该一元二次方程无实数解");
else if(a=!0&&z=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(z<0)
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()中使用计算结果,可以利用指针!
printf("该一元二次方程有两个相同的实数解");
x=(z-b)/2a;
y=x;
else
printf("该一元二次方程有两个不同的实数解");
x=(z-b)/2a;
y=(b*(-1)+z*(-1))/2a;
return x,y;
子函数还少一个花括号,后面那个 参考技术C 开始定义的是int,没有小数?
main()函数有问题,不能返回值 参考技术D #include <stdio.h>
#include <stdlib.h>
void fun(int a,int b,int c)
float z,y,x1,x2;
z=b*b-4*a*c;
if(z<0)
printf("该方程无解");
else if(z==0)
y=(-b)/(2*a);
printf("方程只有一个根%.2f",y);
else
x1=(-b-z)/(2*a);
x2=(-b+z)/(2*a);
printf("方程有两个根%.2f\t%.2f",x1,x2);
int main(int argc, char *argv[])
float a,b,c;
printf("请输入方程参数");
scanf("%f%f%f",&a,&b,&c);
printf("%.2fx^2+%.2fx+%.2f=0",a,b,c);
fun(a,b,c);
system("PAUSE");
return 0;
追问
这个才对 不好意思
以上是关于C语言求一元二次方程解的函数问题 新手题的主要内容,如果未能解决你的问题,请参考以下文章