// // main.c // 一元二次方程求解 // // Created by 丁小未 on 13-7-9. // Copyright (c) 2013年 dingxiaowei. All rights reserved. // #include <stdio.h> #include <math.h> float O(float a,float b,float c) { float res = b*b-4*a*c; if(res<0) { return -1; } else { return res; } } int main(int argc, const char * argv[]) { float a,b,c; char flag='y'; printf("*******欢迎使用一元二次方程求根系统***************\n"); do { do { printf("\n`请输入一元二次方程的a,b,c参数(例如1,4,4):"); scanf("%f,%f,%f",&a,&b,&c); } while (0==a); float res; float x,y; res=O(a, b, c); if (res<0) { printf("方程无解!"); } if(b*b==4*a*c) { x=(-b)/2*a; printf("方程的解:X=Y=%.2f",x); } if(res>0) { x=(-b+sqrtf(res))/2*a; y=(-b-sqrtf(res))/2*a; printf("方程的解:\nX=%.2f\nY=%.2f",x,y); } printf("\n您想继续吗?(y/n)"); flag = getchar(); //要输入两次是清除之前获取到的留在缓存中的'\n' flag = getchar(); }while ('y'==flag); return 0; }