题目1103:二次方程计算器
2017-04-17 07:41
225 查看
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; double a,b,c; int f; char s[105]; void process(char *p){ int i,z,t=1; double x,k=0; i=0; if(p[i]=='-'){t=-1;i++;} for(z=0;i<strlen(p);i++) if(p[i]=='x'){z=1;break;} else k=k*10+p[i]-'0'; if(!z){ c+=f*t*k;} else {if(!k)k=1; if(i==strlen(p)-1){ b+=f*t*k; } else a+=f*t*k; } } main(){int i,j,l; double x; char str[105]; while(gets(s)){ f=1; a=b=c=0.0; l=strlen(s); str[0]=s[0]; for(i=1,j=1;i<l;i++){ if(s[i]=='-'){ if(j==0){ str[j++]=s[i]; } else { str[j]='\0'; process(str); j=0; str[j++]=s[i]; } } else if(s[i]=='+'||s[i]=='='){ str[j]='\0'; process(str); j=0; if(s[i]=='=')f=-1; } else str[j++]=s[i]; } str[j]='\0'; process(str); x=b*b-4*a*c; if(b*b-4*a*c<0)puts("No Solution"); else printf("%.2lf %.2lf\n",(-b-sqrt(x))/(2*a),(-b+sqrt(x))/(2*a)); }} /************************************************************** Problem: 1103 User: cust123 Language: C++ Result: Accepted Time:20 ms Memory:1028 kb ****************************************************************/
相关文章推荐
- 九度oj-题目1103:二次方程计算器
- 题目1103:二次方程计算器(字符串操作以及基础数学知识)
- 正则表达式练习之题目1103:二次方程计算器
- 九度-题目1103 二次方程计算器
- 题目1103:二次方程计算器
- 九度 Online Judge 算法 刷题 题目1103:二次方程计算器
- 九度 oj 题目1103:二次方程计算器
- 九度oj 题目1103:二次方程计算器
- 九度OJ 1103:二次方程计算器 (解方程)
- 九度OJ 1103:二次方程计算器 (解方程)
- 九度[1103]-二次方程计算器
- 九度[1103]二次方程计算器
- 九度OJ 1103 二次方程计算器
- 九度 1103:二次方程计算器
- OJ_1103 二次方程计算器
- jobdu 1103 二次方程计算器
- 九度OJ 1103 二次方程计算器
- 题目1103:区域赛系列一多边形划分
- 九度OJ-1103:二次方程计算器
- 10道益智题目