c語言第六次作業

來源:互聯網
上載者:User

標籤:迴圈   條件   圖片   win   src   正整數   scanf   編寫   sum   

(一)改錯題
1、錯誤資訊:
錯誤原因:do while的形式錯了
改正方法:while( item < eps)後加上分號 。
2、錯誤資訊:
錯誤原因:最後一項的絕對值小於eps結束,要想要迴圈進行應該>=eps
改正方法:把item < eps改成item>=eps.
3、錯誤資訊:
錯誤原因:item定義得是double類型
改正方法:把1改成1.0
4、錯誤資訊:
錯誤原因:item定義得是double類型
改正方法:輸入把%f改成%lf.
(二)學習總結
1.while(1)和for(;;)是無限迴圈,用break.
2.(1)迴圈次數已知,用for語句。

(2)迴圈次數未知,但迴圈條件在進入迴圈時明確,用while語句。

(3)迴圈次數未知,且迴圈條件在進入迴圈時未知,需要在迴圈體中明確,用do while語句。

3.(1)for語句

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

(2)while語句

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

(3)do while語句

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

4.(1)
break是不符合條件,直接跳出迴圈
(2)
continue是不符合條件,結束本次迴圈。
(三)實驗總結

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


    (3)原始碼

    include include

    int main(void)
    {
    int n;
    double eps,sum,b,c;
    scanf("%lf",&eps);
    n=1;
    sum=0;
    c=1;
    if(c<=eps)
    {
    sum=1;
    }
    else
    {
    while(fabs(c)>eps)
    {
    b=3.0n-2;
    c=1.0/b
    pow(-1,n-1);
    sum=sum+c;
    n++;

    }
    }

    printf("sum = %f",sum);
    return 0;

    }

(4)實驗分析
問題1:運行不對
原因:用eps於eps相比較 了
解決辦法:重新定義一個量與eps比較。
(5)本題PTA提交列表

  1. 猜數字遊戲
    (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

      }  else if(i<a)  {      printf("Too big\n");  }  else  {      if(n==1)      {          printf("Bingo!\n");          break;      }      else if(n>1&&n<=3)      {          printf("Lucky You!\n");          break;      }      else if(n>3&&n<=N)      {          printf("Good Guess!\n");          break;      }      else      {          printf("Game Over\n");          break;      }  }

    }
    return 0;
    }

(4)實驗分析
問題1:編譯錯誤
原因:第一個else 就是a=b的意思,我在裡面判斷的時候又寫了一遍a=b.
解決辦法:把b=a去掉
(5)本題PTA提交列表

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

    (3)原始碼

    include

    int main(void)
    {
    int a,sum;
    sum=0;
    scanf("%d",&a);
    do
    {

     if(a<0) {     break; } else if(a%2!=0) {     sum=sum+a; } scanf("%d",&a);

    }
    while(a>0);
    printf("%d",sum);
    return 0;
    }
    (4)實驗分析
    問題1:編譯錯誤
    原因:while(a>0)後面應該有分號
    解決辦法:while(a>0);
    (5)本題PTA提交列表

    (四)部落格互評
    1,姚紀遠:http://www.cnblogs.com/yjy751522356/p/7838296.html
    2.王映丹:http://www.cnblogs.com/windsky-1999/p/7838107.html
    3.盧玉:http://www.cnblogs.com/luyu0322-/p/7846404.html

c語言第六次作業

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.