注册 登录
编程论坛 数据结构与算法

请问咋改?

嘿嘿2012 发布于 2012-09-19 08:56, 344 次点击
#include<stdio.h>
 #include<math.h>
  main()
  {float a,b,c,x1,x2,sb,xb,m,ch;
   for(;;)
   {
   clrscr[];
   printf("\n\n\n\n\n\n");
   printf("              ########################\n");
   printf("              ##  1.请输入a b c的值  #\n");
   printf("              ##  2.计算方程的值     #\n");
   printf("              ##  3.退出             #\n");
   printf("              ########################\n");
   m==getchar[];
 switch(m)
 {
  case'1':
  {do
   {printf("请输入 a b c的值\n");
    printf("\na=");
    scanf("%f",&a);
    printf("\nb=");
    scanf("%f",&b);
    printf("\nc=");
    scanf("%f",&c);
    printf("确定吗?确定按'1'不确定按'2'重新输入\n");
    scanf("%f",&ch);
   }
  while(ch==2);break;
  }
 case'2':
 {printf("a=%f,b=%f'c=%f\n",a,b,c);
 if(a==0&&b==0&&c==0)
 {printf("方程有任意解\n");
  printf("x1=任意值\n");
  printf("x2=任意值\n");
 getchar[];break;
  }
  if(a==0&&b!=0)
  {printf("方程是一元一次方程\n");
   printf("x1=x2=%f\n",-c/b);
   getch();break;
  }
  if(a==0&&b==0&&c!=0)
  {printf("方程无解\n");
  getch();break;
  }
  if(a!=0)
  {
   if(b*b-4*a*c>0)
   {printf("方程是一元二次方程,有两个不等实数根\n");
    x1==(-b+sqrt(b*b-4*a*c))/(2*a);
    x2==(-b-sqrt(b*b-4*a*c))/(2*a);
    printf("x1=%8.4f\n x2=%8.4f\n",x1,x2);
   getchar[];
   break;
   }
   if(b*b-4*a*c==0)
   {printf("方程是一元二次方程,有两个相等实数根\n");
    x1=-b/(2*a);
    printf("x1=x2=%8.4f\n",x1);
   getch();
   break;
   }
   if(b*b-4*a*c<0)
   {printf("方程是一元二次方程,有两个不相等虚根\n");
    sb=-b/(2*a);
    xb=sqrt(fabs(b*b-4*a*c))/(2*a);
    printf("x1=%f+%fi\n",sb,xb);
    printf("x2=%f-%fi\n",sb,xb);
   getch();
   break;
   }
  }
   case'3':
   exit();
   }
  }
 }
  }
3 回复
#2
寒风中的细雨2012-09-19 16:38
发帖的时候  尽量把问题描述清楚
#3
pangding2012-09-26 11:21
楼主是从哪粘来的代码吧?最好先自己读读懂。
#4
qunxingw2012-09-26 12:58
如果是我,先读若干遍,找出问题的方向,如还不行,化整为零,逐一检测。实在不行,救助!我以为学习时,过程远比结果重要。
1