标题:这种问题应该怎么样做啊
只看楼主
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
 问题点数:0 回复次数:4 
这种问题应该怎么样做啊
#include<stdio.h>
#include<math.h>
void main()
{
float fdayu(float,float,float);
float fdeyu(float,float,float);
float fxiyu(float,float,float);
float a,b,c,d,e,f,g;
printf("Please insert 3 numbers:\n");
scanf("%f%f%f",&a,&b,&c);
if((b*b-4*a*c) > 0)
d = fdayu(a,b,c);
if((b*b-4*a*c) == 0)
d = fdeyu(a,b,c);
if((b*b-4*a*c) < 0)
d = fxiyu(a,b,c);
printf("%f",d);
}



float fdayu(float x,float y,float z)
{
int t,k;
t = (-y + sqrt(y * y - 4 * x * z))/(2 * x);
k = (-y - sqrt(y * y - 4 * x * z))/(2 * x);
return (t,k);
}



float fdeyu(float x,float y,float z)
{
int t,k;
t = (-y + sqrt(y * y - 4 * x * z))/(2 * x);
k = (-y - sqrt(y * y - 4 * x * z))/(2 * x);
return (t,k);
}


float fxiyu(float x,float y,float z)
{
int t,k;
t = (-y + sqrt(y * y - 4 * x * z))/(2 * x);
k = (-y - sqrt(y * y - 4 * x * z))/(2 * x);
return (t,k);
}

题目是求方程ax(2)+bx+c = 0{中的x(2)表示x的平方}的根,用3个函数分别求当b平方-4ac大于0,等于0和小于0时的根并输出结果,两个整数由键盘输入!
搜索更多相关主题的帖子: include numbers insert 
2006-04-21 06:31
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
得分:0 
#include<stdio.h>
#include<math.h>
void main()
{
float fdayu(float,float,float);
float fdeyu(float,float,float);
float fxiyu(float,float,float);
float a,b,c,d,e,f,g;
printf("Please insert 3 numbers:\n");
scanf("%f%f%f",&a,&b,&c);
if((b*b-4*a*c) > 0)
d = fdayu(a,b,c); /*只得到一个解*/
if((b*b-4*a*c) == 0)
d = fdeyu(a,b,c);
if((b*b-4*a*c) < 0)
d = fxiyu(a,b,c);
printf("%f",d);
}



float fdayu(float x,float y,float z)
{
int t,k;
t = (-y + sqrt(y * y - 4 * x * z))/(2 * x);
k = (-y - sqrt(y * y - 4 * x * z))/(2 * x);
return (t,k); /*仅返回k*/
}



float fdeyu(float x,float y,float z)
{
int t,k;
t = (-y + sqrt(y * y - 4 * x * z))/(2 * x);
k = (-y - sqrt(y * y - 4 * x * z))/(2 * x);
return (t,k); /*仅返回k*/

}


float fxiyu(float x,float y,float z)
{
int t,k;
t = (-y + sqrt(y * y - 4 * x * z))/(2 * x);
k = (-y - sqrt(y * y - 4 * x * z))/(2 * x);
return (t,k); /*仅返回k*/

}
想得到两个返回值,用指针调用吧。要不然就用全局变量。

2006-04-21 06:49
lian860911
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-4-20
得分:0 
#include<stdio.h>
#include<math.h>
void main()
{
float fdayu(float,float,float);
float fdeyu(float,float,float);
float fxiyu(float,float,float);
float a,b,c,d[2],e,f,g; /*这里定义了d[2]是用来表示方程的两个根*/
int i;
printf("Please insert 3 numbers:\n");
scanf("%f%f%f",&a,&b,&c);
if((b*b-4*a*c) > 0)
{d[0] = fdayu(a,b,c);
d[1]=(-d[1])-2*b;}
if((b*b-4*a*c) == 0)
d[0]=d[1] = fdeyu(a,b,c);
if((b*b-4*a*c) < 0)
{d[0] = fxiyu(a,b,c);
d[1]=(-d[1])-2*b;}
for(i=0;i<2;i++){
printf("%f",d[i]);
}
}
float fdayu(float x,float y,float z)
{
int t,k;
t = (-y + sqrt(y * y - 4 * x * z))/(2 * x);
return t;
}
float fdeyu(float x,float y,float z)
{
int t,k;
t = (-y + sqrt(y * y - 4 * x * z))/(2 * x);
return t;
}

float fxiyu(float x,float y,float z)
{
int t,k;
t = (-y + sqrt(y * y - 4 * x * z))/(2 * x);
return t;
}
运行出了结果,不知有没有逻辑错误!参考哈!

2006-04-21 12:33
errorer
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-4-19
得分:0 
我觉得完全可以把实现三种情况的三个函数放到一个函数中,在这个函数中用
if(...)
else(...)
else if( ...)
代替
程序更明朗化

思想有多远,就能走多远!
2006-04-21 20:53
errorer
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-4-19
得分:0 

打错了 不好意思哈


思想有多远,就能走多远!
2006-04-21 20:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-58966-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.246565 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved