实验四 循环结构的程序设计      实验报告下载

一、实验目的

       通过针对循环问题求解的程序填空,认识循环结构的程序流程框架,理解循环结构流程控制语句的正确应用以及条件的正确表示、循环入口和循环结束的正确控制。

      

      

二、实验内容

      1、题目:输入某年某月某日,判断这一天是这一年的第几天?

      算法分析提示:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天。

      特殊情况:闰年且输入月份大于3时需考虑多加一天。

      

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

输入期待的输出说明
2013.3.27It is the 86th按照格式输出
1996.3.27It is the 87th
2012.5.8
1990.10.1
2008.8.8

      

      C的源程序如下:

      

      /*题目:输入某年某月某日,判断这一天是这一年的第几天?*/

      #include "stdio.h"

      int main()

      {

        int day,month,year,sum,leap;

        printf("\nplease input year,month,day\n");

        scanf("%d,%d,%d",&year,&month,&day);

        switch( 【1】 )/*先计算某月以前月份的总天数*/

        {

        case 1:sum=0;break;

        case 2:sum=31;break;

        case 3:sum=59;break;

        case 4:sum=90;break;

        case 5:sum=120;break;

        case 6:sum=151;break;

        case 7:sum=181;break;

        case 8:sum=212;break;

        case 9:sum=243;break;

        case 10:sum=273;break;

        【2】   ;

        【3】   ;

        default:printf("data error");   【4】   ;

        }

        sum=sum+day;    /*再加上某天的天数*/

        if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/

            leap=1;

        else

            leap=0;

        if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/

        【5】;

        printf("It is the %dth day.",sum);

      }

      

      2、题目:将一个正整数分解质因数。

      

      算法分析提示:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

      (1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

      (2) 如果n不等于最小的质数k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。

      (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

      

      C的源程序如下:

      /*题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。*/

      #include "stdio.h"

      int main()

      {

        int n,i;

        printf("\nplease input a number:\n");

        scanf("%d",&n);

        printf("%d=",n);

        for(i=2;  【1】  ;i++)

        {

          while(  【2】  )

          {

            if(n%i==0)

            {

               printf("%d*",i);

               n=n/i;

            }

            else

               【3】;

          }

          printf("%d",n);

        }

      }

      

三、实验方法

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

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

      

      

四、实验报告

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

输入期待的输出说明
9090=2*3*3*5按照格式输出
123
234
2
0