<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      我們不一樣

      C語言程序設計第六次作業——循環結構(2)

      一改錯題:

      序列求和:輸入一個正實數eps,計算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... ,精確到最后一項的絕對值小于eps(保留6位小數)。
        輸入輸出樣例:
        Input eps:1E-4
        s = 0.835699
      對源程序進行編譯,采用每次修改第一個錯誤并重新編譯的方法,記錄每個錯誤的錯誤信息、分析錯誤原因并給出正確的語句。
      (1)錯誤信息:

      錯誤原因:
      采用的do while語句后面沒有冒號。
      改正方法:
      在while后面的括號后面加冒號。
      (2)錯誤信息:

      錯誤原因:

      定義為double類型輸入用%f.
      改正方法:
      定義為double類型所以輸入要用%lf。
      (3)錯誤信息:

      錯誤原因:
      item<esp
      改正方法:
      item>=esp
      (4)錯誤信息:
      item = 1/ n
      錯誤原因:
      沒有轉化為double
      改正方法:
      item =1.0/n

      二學習總結:

      1.語句while(1)和for(;;)是什么意思?,如何保證這種循環能正常執行?
      答:while(1)和for語句都是循環語句,都是死循環,除非遇到break語句,其他情況下是for用于循環次數已知的循環,while是未知的。首先判斷循環類型然后選擇合適的循環語句。
      2.一般情況下,設計循環結構時,使用for、while、do while三種語句都可以,并且三種語句可以相互轉換,但是,在某些特定情況下,我們應該優先選擇某種語句來快速實現循環設計。如果有如下情況:
      (1)循環次數已知
      (2)循環次數未知,但循環條件在進入循環時明確
      (3)循環次數未知,且循環條件在進入循環時未知,需要在循環體中明確
      針對上面三種情況,分別采用什么循環語句實現比較好?對每種情況,用我們完成的兩次循環結構作業中的題目加以說明。
      答:如果循環次數已知我們選用for語句,例如:

      # include <stdio.h>
      int main (void)
      {
          int N,i;
          double sum;
          scanf("%d",&N);
          for(i=1,sum=0;i<=N;i++)
          {
          sum=sum+1.0/(2*i-1);
          }
          printf("sum = %.6f",sum);
      
          return 0;
      }
      

      如果循環次數未知但循環條件在進入循環時明確我們采用while語句例如:

      如果循環次數未知,且循環條件在進入循環時未知,需要在循環體中明確我們采用do while語句例如:

      # include <stdio.h>
      int main()
      {
          int n,sum;
          sum=0;
          do
              scanf("%d",&n);
              if(n<0)
              {
                  break;
              }
              else if(n%2==1)
              {
                  sum=sum+n;
              }
          }while(n>0);
          printf("%d",sum);
          return 0;
      }
      

      3.有如下問題:輸入一批學生成績,以-1作為結束,計算學生的平均成績。
      要求分別用for語句、while語句、do while語句三種循環語句實現,并說明你認為哪種形式更合適?
      第一種:for

      # include <stdio.h>
      int main() 
      {
          int i,number;
          double sum,average,grade;
          sum=0,number=0;
          for(;;)
          {
              scanf("%lf",&grade);
              if(grade==-1)
              {
              break;
              }
             else
              {
              sum = sum+grade;
              number++;
              }
          }
          average = sum/number;
      printf("%.2f",average);
          return 0;
      }
      

      第二種:while

      # include <stdio.h>
      int main()
      {
          int number;
          double grade,sum,average;
          sum=0,number=0;
          scanf("%lf",&grade);
          while(grade!=-1)
          {
              sum=sum+grade;
              number++;
              scanf("%lf",&grade);
          }
              average=sum/number;
          printf("%.2f",average);
          return 0;
      }
      

      第三種:do while

      # include <stdio.h>
      int main ()
      {
          int number;
          double sum,average,grade;
          sum=0,number=0;
          scanf("%lf",&grade);
          do
          {
              sum=sum+grade;
              number++;
              scanf("%lf",&grade);
          }while(grade!=-1);
              average=sum/number;
          printf("%.2f",average);
         return 0;
      }
      

      答:我認為用while語句合適首先沒有循環次數把for排除其次循環體明確。

      4.運行下面程序,輸入1到10,結果分別是什么?為什么?
      程序一運行結果:

      程序二運行結果:

      答:程序一語句中如果n%2=0后面是break停止sum只等于1.
      程序二語句中continue語句表示執行下一步所以sum等于25.

      三實驗總結:

      (一)
      (1)題目:
      本題要求編寫程序,計算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一項的絕對值不大于給定精度eps。
      (2)流程圖:

      (3)源代碼:

      #include<stdio.h>
      #include<math.h>
      int main()
      {
          int n;
          double esp,item,flag=1,sum;
          sum=0;
          n=1;
          item=1;
          scanf("%lf",&esp);
          if(esp>=1)
          {
            printf("sum = 1");
          	}
          else
          {
          while(fabs(item)>esp)
            {
        	    item=1.0/n*flag;
        	    sum=sum+item;
      	      n=n+3;
      	      flag=-flag;
             }
          }
          printf("sum = %.6f",sum);
          return 0;
      }
      

      (4)實驗分析:
      問題:esp的分類情況有問題丟失了多種情況。
      原因:做題時考慮不周,對問題理解不全面。
      解決辦法:多次運行對比結果,并且尋問老師。
      (5)pta提交表:

      (二)
      (1)題目:
      猜數字游戲是令游戲機隨機產生一個100以內的正整數,用戶輸入一個數對其進行猜測,需要你編寫程序自動對其與隨機產生的被猜數進行比較,并提示大了(“Too big”),還是小了(“Too small”),相等表示猜到了。如果猜到,則結束程序。程序還要求統計猜的次數,如果1次猜出該數,提示“Bingo!”;如果3次以內猜到該數,則提示“Lucky You!”;如果超過3次但是在N(>3)次以內(包括第N次)猜到該數,則提示“Good Guess!”;如果超過N次都沒有猜到,則提示“Game Over”,并結束程序。如果在到達N次之前,用戶輸入了一個負數,也輸出“Game Over”,并結束程序。
      (2)流程圖:

      (3)源代碼:

      #include <stdio.h> 
      int main()
      {
          int num,N,a,f=0,c=0;
          scanf("%d %d",&num,&N);
          do
          {
      	    scanf("%d",&a);
      	    c++;
      	    if(a<0)
      	    {
          		    printf("Game Over\n");
      		    f=1;
      	    }
      	    else if(a>num)
      	    {
      	        	printf("Too big\n");
      	    }
      	    else if(a<num)
      	    {
      		    printf("Too small\n");
      	    }
      	    else
      	    {
      		    if(c==1)
      		    {
      			    printf("Bingo!\n");
      		    }
      		    else if(c<=3)
      		    {
      			    printf("Lucky You!\n");
      		    }
      		    else
      		    {
      			    printf("Good Guess!\n");
      		    }
      		    f=1;
      	    }
      	    if(c==N)
      	    {
      		    if(f!=1)
      		    {
      		        	printf("Game Over\n");
      			    f=1;
      		    }
      	    }
          }while(f!=1);
      
          return 0;
      }
      

      (4)實驗分析
      問題:此題太難,很繁瑣,許多步驟不正確。
      原因:看到大段的題目直接蒙圈,就沒有往下做的念頭了。
      解決方法:同學幫助還是未完成
      (5)pta提交結果:

      (三)
      (1)題目:
      本題要求計算給定的一系列正整數中奇數的和。
      (2)流程圖:

      (3)源代碼:

      #include<stdio.h>
      int main()
      {
          int sum=0,n;
          while (1)
          {
              scanf("%d",&n);
      	    if(n<=0)
      	    break; 
      	    if (n%2!=0)
      	    {
      	       sum=sum+n;	
      	    }
      
          }
          printf("%d",sum);
          return 0;
      }
      

      (4)實驗分析
      此題一次性解決。
      (5)pta提交表

      四博客互評:
      (1)http://home.cnblogs.com/u/wangqi1998/
      (2)http://home.cnblogs.com/u/8426224ll/
      (3)http://home.cnblogs.com/u/snxtx/

      posted on 2017-11-18 23:47  我們不一樣  閱讀(520)  評論(1)    收藏  舉報

      主站蜘蛛池模板: 兔费看少妇性l交大片免费| 国内精品久久人妻无码不卡| 奇米影视7777久久精品| 人人妻人人狠人人爽天天综合网 | 精品综合一区二区三区四区| 日韩丝袜欧美人妻制服| japanese无码中文字幕| 国产精品天天看天天狠| 国产一区二区三区免费观看| 久久精品av国产一区二区| 亚洲精品一区二区三区中文字幕| 国产久久热这里只有精品| 色综合久久久久综合体桃花网| 色综合久久中文综合久久激情| h无码精品动漫在线观看| 欧美激烈精交gif动态图| 人妻丰满熟妇av无码区| 亚洲精品男男一区二区| 精品国产一区二区三区香蕉| 午夜成年男人免费网站| 国产成人午夜福利精品| 成人精品久久一区二区三区| 国产爆乳乱码女大生Av| 美女一区二区三区在线观看视频| 亚洲成A人片在线观看无码不卡 | 日韩人妻一区中文字幕| 亚洲女同在线播放一区二区| 人妻综合专区第一页| 国内精品一区二区不卡| 国产综合视频一区二区三区| 国产乱人伦AV在线麻豆A| 国产高清一区二区不卡| 久久96热人妻偷产精品| 日本熟妇浓毛| 成人午夜福利精品一区二区 | 国产360激情盗摄全集| 2021国产精品视频网站| 亚洲中文字幕综合网在线| 国产亚洲精久久久久久无码77777| 欧美男男作爱videos可播放 | 国产不卡的一区二区三区|