| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2246 人关注过本帖
标题:请问一元二次方程怎么用switch解,谢谢啊!!
只看楼主 加入收藏
mqj3000
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-10-23
收藏
 问题点数:0 回复次数:5 
请问一元二次方程怎么用switch解,谢谢啊!!
急切求教??
 求一元二次方程
 条件:
      1.a=0,不是方程
      2.有两个相等实根
      3.有两个不相等实根
      4.有两个共轭复根
请各位帮忙解一下,非常感谢!!
搜索更多相关主题的帖子: switch 一元二次方程 
2008-10-23 21:05
luo123
Rank: 1
等 级:新手上路
威 望:2
帖 子:324
专家分:0
注 册:2007-4-13
收藏
得分:0 
自己弄的   
这个能求 ax^2+bx+c=0的解
#include "stdio.h"
#include "math.h"
#include "conio.h"
int panduan(int a,int b,int c)
{
int m;
m=b*b-4*a*c;
return(m);
}
int main(void)
{int a,b,c,flag;
float x1,x2,ture,virture;
int swt;
printf("请依次输入二次方程的系数:\n");
scanf("%d %d %d",&a,&b,&c);
flag=panduan(a,b,c);
if(flag==0)
swt=0;
else if(flag>0)
swt=1;
else
swt=2;

switch(flag)
{
case 0: x1=-b/(2*a);printf("两个相等的实根为:x1=x2=%d",x1); break;
case 1: x1=(-b+sqrt(flag))/(2*a); x2=(-b-sqrt(flag))/(2*a); printf("两个不相等的实根为:x1=%d,x2=%d",x1,x2); break;
case 2: ture=-b/(2*a); virture=sqrt(-flag)/(2*a); printf("两个不相等的虚根:x1=%d+%di,x2=%d-%di",ture,virture,ture,virture); break;
}
getch();
}

[[it] 本帖最后由 luo123 于 2008-10-24 00:44 编辑 [/it]]

[url=http://www..cn]电子编程[/url]
2008-10-24 00:29
mqj3000
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-10-23
收藏
得分:0 
谢谢 
谢谢解答
但是,我用VC运行时有warning
请再帮忙下,谢谢啊!!
2008-10-24 10:19
widedown
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-23
收藏
得分:0 
#include "stdio.h"
#include "math.h"
#include "conio.h"
int panduan(int a,int b,int c)
{
int m;
m=b*b-4*a*c;
return(m);
}
int main(void)
{int a,b,c,flag;
float x1,x2,ture,virture;
int swt;
printf("请依次输入二次方程的系数:\n");
scanf("%d,%d,%d",&a,&b,&c);
flag=panduan(a,b,c);
if(flag==0)
swt=0;
else if(flag>0)
swt=1;
else
swt=2;

switch(swt)
{
case 0: x1=-b/(2*a);printf("两个相等的实根为:x1=x2=%d\n",x1); break;
case 1: x1=(-b+sqrt(flag))/(2*a); x2=(-b-sqrt(flag))/(2*a); printf("两个不相等的实根为:x1=%6f,x2=%6f\n",x1,x2); break;
case 2: ture=-b/(2*a); virture=sqrt(-flag)/(2*a); printf("两个不相等的虚根:x1=%6f+%6fi,x2=%6f-%6fi\n ",ture,virture,ture,virture); break;
}
}
2008-10-27 21:23
ztj20080808
Rank: 1
等 级:新手上路
威 望:1
帖 子:36
专家分:0
注 册:2008-10-27
收藏
得分:0 
[quote][bo][un]luo123[/un] 在 2008-10-24 00:29 的发言:[/bo]

自己弄的   
#include "stdio.h"
#include "math.h"
#include "conio.h"
int panduan(int a,int b,int c)
{
int m;
m=b*b-4*a*c;
return(m);
}
int main(void)
{int a,b,c,flag;
float x1,x2,ture,virture;
int swt;
printf("请依次输入二次方程的系数:\n");
scanf("%d,%d,%d",&a,&b,&c);
flag=panduan(a,b,c);
if(flag==0)
swt=0;
else if(flag>0)
swt=1;
else
swt=2;

switch(swt)
{
case 0: x1=-b/(2*a);printf("两个相等的实根为:x1=x2=%d\n",x1); break;
case 1: x1=(-b+sqrt(flag))/(2*a); x2=(-b-sqrt(flag))/(2*a); printf("两个不相等的实根为:x1=%6f,x2=%6f\n",x1,x2); break;
case 2: ture=-b/(2*a); virture=sqrt(-flag)/(2*a); printf("两个不相等的虚根:x1=%6f+%6fi,x2=%6f-%6fi\n ",ture,virture,ture,virture); break;
}
getch();
return 0;/*这一句不能少啊*/
}
2008-10-28 12:20
快速回复:请问一元二次方程怎么用switch解,谢谢啊!!
数据加载中...
 
   



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

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