实验三 选择结构的程序设计      实验报告下载

一、实验目的

      通过针对选择性问题求解的程序填空,认识选择结构的程序流程框架,理解选择结构流程控制语句的正确应用以及条件的正确表示;同时进一步熟悉输出格式的设计实现,熟练掌握程序的调试与运行。

      

      

二、实验内容

      1、在实验一中对一元二次方程ax2+bx+c=0的求解只考虑了b2-4ac〉0的情况。如果考虑a、b、c取值分别如下表,求一元二次方程ax2+bx+2=0的根提示:若b2-4ac>0,方程有两个不同的实根;

输入期待的输出说明
abcx1x2
352x1=x2=b*b-4ac>0
242x1=x2=-1.000000b*b-4ac=0
342x1=-0.666667+0.471405ix2=-0.666667-0.471405ib*b-4ac<0
302x1=x2=b=0
042x1=-0.500000a=0
002Input error!a=0,b=0

      

      若b*b-4ac<0,方程有两个复根,其实部和虚部分开计算;

      若b*b-4ac=0,方程有两个相等的实根;

      请分别考虑:a=0、b=0和a、b均为0时的情况。

      ---------------------------------C语言程序---------------------------------

      #include "stdio.h"

      #include "math.h"

      int main(void)

      {

        int a,b,c;

        double d,e,f;

        scanf("%d %d %d",&a,&b,&c);

        d=a, e=b, f=c;

        if(a==0);

          if(b==0);

            【1】;

          【2】;

          else

            if(【3】)

              printf("x1=x2=%.6f\n",0-e/(2*d));

            else

              if (b*b-4*a*c>0)

                printf("x1=%.6f\nx2=%.6f\n",(-e+sqrt(e*e-4*d*f))/(2*d),(-e-sqrt(e*e-4*d*f))/(2*d));

              else

                【4】;

          【5】;

        【6】;

          printf("x1=%.6f+%.6fi\nx2=%.6f+%.6fi\n",-e/(2*d),sqrt(4*d*f-e*e)/(2*d),-e/(2*d),-sqrt(4*d*f-e*e)/(2*d));

      }

      ------------------------------------------------------------------------------

      请按照表格中“期待的输出”要求,将程序空缺的【1】、【2】、【3】、【4】、【5】、【6】语句补充完整,并调试运行,针对每一组输入,将对应的输出填写在表中。

      

      2、完成本次网络教室布置的编程练习题。

      

      

三、实验方法

      1、针对问题画出流程图;

      2、按照流程图和输出要求,将将程序补充完整,并按照所给的6组输入数据进行调试运行,对照表格中的输出要求检查程序,使之完全符合输出格式要求。

      

      

四、实验报告

      将完成的表复制下来,在网络教室提交。

序号C语句
【1】
【2】
【3】
【4】
【5】
【6】