一元二次方程组求解
1 // 2 3 // main.c 4 5 // 一元二次方程求解 6 7 // 8 9 // Created by 丁小未 on 13-7-9. 10 11 // Copyright (c) 2013年 dingxiaowei. All rights reserved. 12 13 // 14 15 16 17 #include18 19 #include 20 21 float O(float a,float b,float c) 22 23 { 24 25 float res = b*b-4*a*c; 26 27 if(res<0) 28 29 { 30 31 return -1; 32 33 } 34 35 else 36 37 { 38 39 return res; 40 41 } 42 43 } 44 45 46 47 int main(int argc, const char * argv[]) 48 49 { 50 51 float a,b,c; 52 53 char flag='y'; 54 55 printf("*******欢迎使用一元二次方程求根系统***************\n"); 56 57 do 58 59 { 60 61 do { 62 63 printf("\n请输入一元二次方程的a,b,c参数(例如1 4 4):"); 64 65 scanf("%f %f %f",&a,&b,&c); 66 67 } while (0==a); 68 69 70 71 float res; 72 73 float x,y; 74 75 res=O(a, b, c); 76 77 if (res<0) 78 79 { 80 81 printf("方程无解!"); 82 83 } 84 85 if(b*b==4*a*c) 86 87 { 88 89 x=(-b)/2*a; 90 91 printf("方程的解:X=Y=%.2f",x); 92 93 } 94 95 if(res>0) 96 97 { 98 99 x=(-b+sqrtf(res))/2*a;100 101 y=(-b-sqrtf(res))/2*a;102 103 printf("方程的解:\nX=%.2f\nY=%.2f",x,y);104 105 }106 107 printf("\n您想继续吗?(y/n)");108 109 flag = getchar(); //要输入两次是清除之前获取到的留在缓存中的'\n'110 111 flag = getchar();112 113 }while ('y'==flag);114 115 return 0;116 117 }118 119