用switch语句编写求一元二次方程的解的方程

作者&投稿:木成 (若有异议请与网页底部的电邮联系)
用switch语句求一元二次方程的根,请问哪里错了~

#include
#include
int main()
{
int a,b,c,m,n,i;
float x1,x2; //计算出来要保持精度,因此用float
//clrscr(); //这个貌似在vc中不能用
printf("Please input a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
m=-b/(2*a);
n=b*b-4*a*c;
if(n==0)
{
i=0;
}
else if(n>0)
{
i=1;
}
else
{
i=2;
}
switch(i)
{
case 0:
x1=m;
printf("x1=x2=%f",x1);
break;
case 1:
x1=(-b+sqrt(n))/(2*a);
x2=(-b-sqrt(n))/(2*a);
printf("x1=%f,x2=%f",x1,x2);
break;
case 2:
printf("No solution");
//break; //在最后的可以不加break;
}
return 0;
}

//哪里有问题可以继续问~

#include #include "math.h"int main(int argc,char *argv[]){ double t=-5/4.0,s=5*5-4.0*2*3; if(s>=0){ s=sqrt(s); printf("x1 = %f x2 = %f
",t+s/4.0,t-s/4.0); } else printf("No solution
"); return 0;}

正确代码为:#include "math.h"
#include "stdio.h"int main(void)
{
double a,b,c,d,x1,x2,p,q;
int flag;

printf("输入方程的三个系数a,b,c=?");
scanf("%lf,%lf,%lf", &a, &b, &c);

d = b * b - 4 * a * c;

if(fabs(a) <= 1.0e-6)
{
flag=1;
}
else if(fabs(d) <= 1.0e-6)
{
flag=2;
}
else if(d > 1.0e-6)
{
flag=3;
}
else
{
flag=4;
}

switch(flag)
{
case 1:
{
printf("方程不是一个二次方程。\n");

break;
}
case 2:
{
x1 = (-b + sqrt(d)) / (2 * a);
x2 = x1;

printf("方程有两个相等的实数根: \n x1 = x2 = %lf\n", x1);

break;
}
case 3:
{
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);

printf("方程有两个不相等的实数根: \nx1 = %lf\nx2 = %lf\n",x1,x2);

break;
}
case 4:
{
p = -b / (2 * a);
q = sqrt(-d) / (2 * a);

printf("方程有两个共轭复数: \n");
printf("x1 = %lf + %lf \n", p, q);
printf("x1 = %lf - %lf \n", p, q);

break;
}
}

return 0;
}注:由于时间关系,注释就没写了,建议回去再看一下switch的运用。愿能解决你的问题,编译一下吧!祝你好运。

scanf("%f,%f,%f",&a,&b,&c);改为scanf("%lf,%lf,%lf",&a,&b,&c);double型输入用%lf格式符
变量flag类型变为int;传递给switch()的值必须是有最终结果的整型变量或表达式
将double a,b,c,d,flag,x1,x2,p,q;改为下面两行:
double a,b,c,d,x1,x2,p,q;
int flag;
输入a,b,c时不要忘记中间的“,”。


用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表...
include <stdio.h>#include<stdlib.h>int main(){char input[40];char temp1[20];char temp2[20];char op;int flag=0,flag2=0;bool tempbool=0,tempbool2=0;while (!tempbool){flag=0,flag2=0;tempbool=0,tempbool2=0;gets(input);\/\/整行读取for (int i=0;i<50;i++){if((...

用switch语句编写程序,实现以下功能
switch(表达式){ case 常量表达式1:语句1;...case 常量表达式2:语句2;default:语句;} default就是如果没有符合的case就执行它,default并不是必须的。case后的语句可以不用大括号。switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型。一旦case匹配,就会顺序执行后面的程序代码,而不管后...

C语言:如何使用switch语句?编写图中的分段函数?
C语言使用switch语句,编写图中的分段函数:include<stdio.h> voidmain()intx,y,flag;printf("请输入x:");scanf("%d",&x);flag=x<0?-1:(x<10?1:2);switch(flag)case-1:y=x;break;case1:y=2*x-1;break;case2:y=3*x-1;printf("y=%d\\n",y);简介 ...

使用switch语句,编写一个简单的计算机程序。要求从键盘上输入两个数...
如果我的回答你还满意记得选个满意答案哦#include<stdio.h> void main(){ float a,b;char c;printf("请输入两个操作数:");scanf("%f",&a);scanf("%f",&b);getchar();printf("请选择操作运算:");scanf("%c",&c);switch(c){ case '+':printf("结果是:%f\\n",a+b);break;case...

用switch语句编写JAVA程序,实现输入年份,月份,显示该月天数?
switch [m]{ case '2'return d=28;break;case '1'case '3'case '5'case '7'case '8'case '10'case '12'return d=31;default: return d=30;扩展质料:switch语句执行时会从上到下根据括号中表达式的值作比较,当某个case语句中的表达式与此值相同时,就执行这个case语句或语句序列,直到...

java编程题:使用switch语句编写输入1-7打印对应的星期一到星期天...
import java.util.Scanner;public class LianXi{ public static void main(String[] args){ System.out.println("请输入1-7的数字");Scanner sc = new Scanner(System.in);for(int i=1;i<=7;i++){ int week = sc.nextInt();switch(week){ case 1:System.out.println("星期一");break...

用switch语句编程设计一个简单的计算器程序
include <stdio.h> int main( ){ double a, b;char op;scanf("%lf%c%lf", &a, &op, &b);switch (op){ case '+':printf("%lf + %lf = %lf\\n", a, b, a + b);break;case '-':printf("%lf - %lf = %lf\\n", a, b, a - b);break;case '*':printf("%...

c语言怎么用switch语句编写四则运算?
switch 是一个开关语句,和case配套使用, 和if else 判断语句差不多, switch 语句是用于多分支语句进行条件判断。下例为用switch语句编写的四则运算:include <stdio.h> void main(){ double N1,N2;char Operation;printf("输入运算的两个数");scanf("%lf%lf",&N1,N2);printf("请输入运算...

C++:用switch语句编程解以下要求的题目,咋写?
include <iostream> using namespace std;int main(int argc,char *argv[]){ double r,pai=3.1415926;int k;cout << "Enter r & k(r>0 & k>0(1,2,3)...\\n";if((cin >> r >> k) && r>0 && (k==1 || k==2 || k==3)){ switch(k){ case 1:cout << "S = ...

用switch语句实现编程:x<0,y=1。x=0,y=0。x>1,y=-1 急求是c语言...
include<stdio.h> void main(){ int a,x,y;printf("输入x的值:");scanf("%d",&x);\/*x<0,y=1。x=0,y=0。x>1,y=-1 *\/ if(x<0)a=1;else if(x==0)a=2;else a=3;switch(a){ case 1:y=1;break;case 2:y=0;break;case 3:y=-1;break;default:break;} printf(...

新县18812476919: 用switch语句编写求一元二次方程的解的方程 -
章学加味: 正确代码为:#include "math.h" #include "stdio.h"int main(void) {double a,b,c,d,x1,x2,p,q;int flag; printf("输入方程的三个系数a,b,c=?");scanf("%lf,%lf,%lf", &a, &b, &c); d = b * b - 4 * a * c; if(fabs(a) <= 1.0e-6){flag=1;}else if(...

新县18812476919: 用switch语言编写一元二次方程ax2+bx+c=0的解的程序? -
章学加味: #include <math.> main() float a,b,c,s,x1,x2; s=b^2-4ac; switch scase s>0:x1=(-b+√s)/(2a);x2=(-b-√s)/(2a);printf("float float",x1,x2);break;case s=0:x1=x2=(-b-√s)/(2a); printf("float float",x1,x2);break;case s<0:x1=x2=null;break; }

新县18812476919: 1.使用 if...else 语句编写程序:完成求解一元二次方程的解,ax2+bx+c=0,考虑以下三种情况:b2 - 4ac>0 b22.使用 if...else 语句编写程序:使用 if...else 语句... -
章学加味:[答案] #include void main() { int a,b,c,p; coutb>>c; p=b*b-4*a*c; if(a==0) cout

新县18812476919: 【c语言初学者】switch语句用法,给写个例子,比如1+1=?,a:2,b:3,c:4,d:5 -
章学加味: #include void main() { switch(1+1){ case 2:printf("回答正确"); break; case 3:printf("错误"); break;case 4:printf("错误"); break; case 5: printf("错误"); break;default : d=a/b; printf("报错咯“); break; }

新县18812476919: 用switch语句实现下列函数 编写程序,要求输入x的值,输出y的值. -
章学加味: #include<stdio.h>void main() { int x,k; scanf("%d",x); if(x<0x>-5) k=-1; else if (x=0) k=0; else if(x>0x<10) k=1; switch(k) { case -1: printf("y=%d",x); break; case 0: printf("y=%d",0); break; case 1: printf("y=%d",x+1); break; } }

新县18812476919: 使用switch语句,编写一个简单的计算机程序.要求从键盘上输入两个数和一个运算符,然后输出运算结 -
章学加味: 如果我的回答你还满意记得选个满意答案哦#include<stdio.h> void main() {float a,b;char c;printf("请输入两个操作数:");scanf("%f",&a);scanf("%f",&b);getchar();printf("请选择操作运算:");scanf("%c",&c);switch(c)...

新县18812476919: 用switch方法编写C++程序计算ax^2+bx+c=0,可不可以帮忙看看哪里错了 -
章学加味: #include#include int main() { int a,b,c,d; float x1,x2,t; scanf("%d %d %d",&a,&b,&c); if (a==0) printf ("不是二元一次方程"); t=b*b-4*a*c; if(t>0){ d=1; x1=(-b+sqrt(t))/(2*a); x2=(-b-sqrt(t))/(2*a); } else if(t else if(t==0) { d=0; x1=x2=-b/(2*a); } ...

新县18812476919: 、要求用switch语句编程设计一个简单的计算器程序.要求根据用户从键盘 -
章学加味: #include int main(){ int a,b,d; char c; printf("输入运算式(格式为1+2):"); scanf("%d %c %d",&a,&c,&b); switch(c){ case '+':d=a+b;break; case '-':d=a-b;break; case '*':d=a*b;break; case '/': if(b!=0) d=a/b; else d=0; break; } printf("%d %c %d = %d\n",a,c,b,d); getchar(); return 0; }

新县18812476919: 用switch语句编写:当a的值是1 、2、3时,将b的值加2;当a的值是4、5、6时,将b的值减2;其他情况 将b乘2 -
章学加味: switch (a){case 1:case 2:case 3: b += 2; break;case 4:case 5:case 6: b -= 2; break;default...

新县18812476919: 用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: -
章学加味: #include int main() { char input[40]; char temp1[20]; char temp2[20]; char op; int flag=0,flag2=0; bool tempbool=0,tempbool2=0; while (!tempbool) { flag=0,flag2=0; tempbool=0,tempbool2=0; gets(input);//整行读取 for (int i=0;i<50;i++) { if((*(input+i))=...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网