九度OJ 1103 二次方程计算器
来源:互联网 发布:sql写入一句话木马 编辑:程序博客网 时间:2024/05/16 14:43
- 题目描述:
设计一个二次方程计算器
- 输入:
每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式。
- 输出:
每个案例输出两个实数(由小到大输出,中间由空格隔开),保留两位小数;如果无解,则输出“No Solution”。
- 样例输入:
x^2+x=3x+4
- 样例输出:
-1.24 3.24
注意细节就好了,没有0系数好像,由小到大输出,公式要用对,因为少了个负号计算结果一直很诡异。。
#include <stdio.h>#include <string.h>#include <math.h>char buf[100];double a, b, c;double m;void process(int s, int e){double tmp = 1, ans = 0;if(buf[s] == '+'){tmp = 1;s++;}else if(buf[s] == '-'){tmp = -1;s++;}bool flag1 = false, flag2 = false;while(s <= e){if(buf[s] >= '0' && buf[s] <= '9'){ans *= 10;ans += buf[s] - '0';}if(buf[s] == 'x')flag1 = true;if(buf[s] == '^'){flag2 = true;break;}s++;}if(flag2 == true){if(ans == 0)a += 1 * tmp * m;elsea += ans * tmp * m;}else if(flag1 == true){if(ans == 0)b += 1 * tmp * m;elseb += ans * tmp * m;}elsec += ans * tmp * m;}int main(){freopen("Test.txt","r",stdin);while(scanf("%s",buf) != EOF){int len = strlen(buf);a = 0; b = 0; c = 0; m = 1;int i = 1, s = 0;while(i < len){if(buf[i] == '+' || buf[i] == '-' || buf[i] == '='){process(s,i-1);//printf("%d %d\n",s,i-1);//printf("%.2lf %.2lf %.2lf\n",a,b,c);if(buf[i] == '+' || buf[i] == '-')s = i;else if(buf[i] == '='){m = -1;s = i+1;i++;}}if(i == len-1)process(s,i);i++;}//printf("%.2lf %.2lf %.2lf\n",a,b,c);double del = b * b - 4 * a * c;if(del < 0 || abs(a-0) < 1e-9)printf("No Solution\n");else{double x1 = (-1 * b + sqrt(del)) / (2 * a);double x2 = (-1 * b - sqrt(del)) / (2 * a);if(x1 > x2){double tmp = x1;x1 = x2;x2 = tmp;}printf("%.2lf %.2lf\n",x1,x2);}//printf("\n");}return 0;}
0 0
- 九度OJ 1103 二次方程计算器
- 九度oj 题目1103:二次方程计算器
- 九度OJ 1103 二次方程计算器
- 九度 oj 题目1103:二次方程计算器
- 九度OJ-1103:二次方程计算器
- 九度OJ 1103:二次方程计算器 (解方程)
- 九度 1103:二次方程计算器
- 九度[1103]-二次方程计算器
- 九度 Online Judge 算法 刷题 题目1103:二次方程计算器
- 题目1103:二次方程计算器
- jobdu 1103 二次方程计算器
- 题目1103:二次方程计算器
- 九度OJ 1019 简单计算器
- 九度oj 题目1019:简单计算器
- 九度oj-1019:简单计算器
- 九度OJ-题目1019:简单计算器
- 九度oj-1019-简单计算器
- 九度OJ 1019:简单计算器
- Htaccess文件用法集锦
- HTML 5兼容IE的写法
- 每天一条Linux命令 shutdown
- WiFi基本知识
- C#读取pdf文件
- 九度OJ 1103 二次方程计算器
- Android 读取 assets目录下的文件
- java eclipse编码格式设置
- PHP配置mcrypt扩展详细步骤
- __init, __initdata, __devinit 和 __devinitdata的作用
- 在线重定义方法将普通表变为分区表的步骤
- Android Adapter浅谈
- http 协议分析
- 深入理解SpriteSheet(精灵表单)概念