#include<stdio.h>
#include<math.h>
int main() {
// 待解方程数目
int n;
scanf("%d", &n); // 声明方程系数
float a, b, c; // 存储读入的系数
float args[n][n]; // 声明方程的根
double x1, x2; // 循环读入存储每行方程的系数a、b和c
int count=;
while(count!=n) {
scanf("%f %f %f", &a, &b, &c);
args[count][] = a;
args[count][] = b;
args[count][] = c;
count++;
} // 循环计算每行的一元二次方程根
for(int i=; i<n; i++) {
double delta = 0.0;
a = args[i][];
b = args[i][];
c = args[i][];
delta = b * b - * a * c;
if(delta==) {
x1 = (-b+)/(*a);
x2 = x1;
printf("x1=x2=%.5f\n", x1);
} else if(delta>) {
x1 = (-b+sqrt(delta))/(*a);
x2 = (-b-sqrt(delta))/(*a);
if(x1>x2)
printf("x1=%.5f;x2=%.5f\n", x1, x2);
else
printf("x2=%.5f;x1=%.5f\n", x2, x1);
} else {
// 实部计算公式: -1.0*b/(2*a) 虚部计算公式:+/- (sqrt(-delta))/(2*a)
printf("x1=%.5f+%.5fi;x2=%.5f-%.5fi\n", -1.0*b/(*a), (sqrt(-delta))/(*a), -1.0*b/(*a), (sqrt(-delta))/(*a));
}
}
return ;
}
/*
pkuic_1709.c
计算概论(A)/基础编程练习1(8题)/4:求一元二次方程的根
http://pkuic.openjudge.cn/base1/4/
4:求一元二次方程的根
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 65536kB
描述
利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2 + bx + c =0的根,其中a不等于0。
输入
第一行是待解方程的数目n。其余n行每行含三个浮点数a, b, c(它们之间用空格隔开),分别表示方程ax2 + bx + c =0的系数。
输出
输出共有n行,每行是一个方程的根:
若是两个实根,则输出:x1=...;x2 = ...
若两个实根相等,则输出:x1=x2=...
若是两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i
所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。
x1和x2的顺序:x1的实部>Re的实部||(x1的实部==x2的实部&&x1的虚部>=x2的虚部)
样例输入
3
1.0 3.0 1.0
2.0 -4.0 2.0
1.0 2.0 8.0
样例输出
x1=-0.38197;x2=-2.61803
x1=x2=1.00000
x1=-1.00000+2.64575i;x2=-1.00000-2.64575i
提示
1、需要严格按照题目描述的顺序求解x1、x2。
2、方程的根以及其它中间变量用double类型变量表示。
3、函数sqrt()在头文件math.h中。
4、要输出浮点数、双精度数小数点后5位数字,可以用下面这种形式:printf("%.5f", num);
注意
在使用Java做此题时,可能会出现x1或x2等于-0的情形,此时,需要把负号去掉
来源
2005~2006医学部计算概论期末考试
*/

计算概论(A)/基础编程练习1(8题)/4:求一元二次方程的根的更多相关文章

  1. 计算概论(A)/基础编程练习2(8题)/1:求平均年龄

    #include<stdio.h> int main() { // 声明与初始化 , s=, age=; // 输入学生人数 scanf("%d", &n); ...

  2. OpenJudge计算概论-求一元二次方程的根【含复数根的计算、浮点数与0的大小比较】

    /*====================================================================== 求一元二次方程的根 总时间限制: 1000ms 内存限 ...

  3. Openjudge-计算概论(A)-求一元二次方程的根

    描述: 利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2 + bx + c =0的根 ...

  4. 计算概论(A)/基础编程练习2(8题)/8:1的个数

    #include<stdio.h> int main() { ; // 存储测试数据的二进制形式中1的个数 int bian[N]; // 输入十进制整数N 表示N行测试数据 scanf( ...

  5. 计算概论(A)/基础编程练习2(8题)/7:整数的个数

    #include<stdio.h> int main() { ] = {}; // 输入k个正整数 scanf("%d",&k); // 循环读入和进行算术 w ...

  6. 计算概论(A)/基础编程练习2(8题)/6:数组逆序重放

    #include<stdio.h> int main() { // 输入n个整数 ; scanf("%d", &n); // 循环读入元素 while(scan ...

  7. 计算概论(A)/基础编程练习2(8题)/5:点和正方形的关系

    #include<stdio.h> #include<math.h> int main() { // 输入坐标 float x, y; while(scanf("%f ...

  8. 计算概论(A)/基础编程练习1(8题)/2:苹果和虫子

    #include<stdio.h> #include<math.h> int main() { /* n个苹果 每x小时能吃掉一个苹果 经过y小时 */ float n, x, ...

  9. 计算概论(A)/基础编程练习1(8题)/1:大象喝水

    #include<stdio.h> int main() { ; // n < 100 scanf("%d", &n); // 循环遍历判断 再进行平方和 ...

随机推荐

  1. DevOps之持续交付

    持续交付 持续交付是一种可以帮助团队以更短的周期交付软件的方法,该方法确保了团队可以在任何时间发布出可靠的软件.该方法意在以更快速度更高频率进行软件的构建.测试和发布. 通过对生产环境中的应用程序进行 ...

  2. 模拟线程安全的售票案例(java)

    package try51.thread.safe; import java.util.ArrayList; import java.util.Random; import java.util.con ...

  3. slam学习资源

    从零开始学slam: http://blog.csdn.net/akunainiannian/article/details/45363731 史上最全的SLAM学习资料收集  http://www. ...

  4. swiper跳转制定页面

    haha(){ var that=this; that.$refs.mySwiper.swiper.slideTo(1, 1000, false); } //以上代码是  获取ref值为myswipe ...

  5. CF989C A Mist of Florescence 构造

    正解:构造 解题报告: 先放传送门yep! 然后构造题我就都直接港正解了QwQ没什么可扯的QwQ 这题的话,首先这么想吼 如果我现在构造的是个4*4的 举个栗子 AABB ACBB AADB DBCA ...

  6. HDU5033 building 单调栈+计算几何

    正解:单调栈 解题报告: 哇生气辽QAQ本来打了半天feel good都快调出来了然后说换题了QAQ(所以可能那题的代码会过一阵子再放上来了QAQ 不过还是大爆手速打了一通拿到首杀了嘻嘻 美滋滋辽 然 ...

  7. IE强制标准模式---标准模式与兼容模式设置

    <meta http-equiv="X-UA-Compatible" content="edge" /> 这个是最有效的方法. 文档模式(docum ...

  8. Linux替换字符串

    sed命令批量替换多个文件中的字符串: 命令:sed -i “s/原字符串/新字符串/g” `grep 原字符串 -rl 所在目录` 例如:我要把 xy 替换为 mn,执行命令: sed -i “s/ ...

  9. javaScript高级教程(五) Event Flow

    1.两个阶段三个模型:Netscape支持事件捕获,IE支持事件冒泡,w3c是先捕获后冒泡 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 S ...

  10. 【JMeter】JMeter进行简单的数据库(mysql)压力测试

    JMeter进行简单的数据库(mysql)压力测试 1.点击测试计划,再点击“浏览”,把JDBC驱动添加进来: 注:JDBC驱动一般的位置在java的安装地址下,路径类似于:    \java\jre ...