第三次作業


【作業要求】:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360

第11周第六次作業:7-1 求1到100的和

1.實驗代碼

#include<stdio.h>
int main()
{
  int i,sum;
  
  sum = 0;
  for(i=1;i<=100;i++){
    sum = sum+i;
  }
  printf("sum = %d\n",sum);
  return 0

2.設計思路

第一步:仔細閱讀作業題目要求,輸入格式及輸出格式。觀察輸出樣例及輸入樣例的數字間是否存在空格。

第二步:定義相加和(sum),與數字(i)。

第三步:利用for循環,循環求和得出相加數的大小。

第四步:輸出結果。

流程圖

3.本題調試過程

1.

2.

3.

4.經過for循環得到結果5050.

 

 

 

第12周第九次作業:7-2 輸出閏年

 

1.實驗代碼

#include<stdio.h>
int main()
{
 int year, i, count=0;
 scanf("%d", &year);
 if(year<=2000||year>2100)
  printf("Invalid year!\n");
 else{
  for(i=2001; i<=year; i++){
   if(i%4==0&&i%100!=0&&i%400!=0){
    printf("%d\n", i);
    count++;
   }
  }
  if(count==0)
   printf("None\n");
 } 
 return 0;
}

 

2.設計思路

第一步:仔細閱讀作業題目要求,輸入格式及輸出格式。觀察輸出樣例及輸入樣例的數字間是否存在空格。

第二步:定義年份(year),count。

第三步:先用if-else語句判斷輸入的年份是否在21世紀之間,若不是,則輸出"Invalid year!"。

第四步:利用for循環,判斷年份是否為閏年。如果每得到閏年年份,count+1。當count=0時,則證明無閏年,輸出“None”。

第五步:輸出結果。

流程圖

 

3.本題調試過程碰到問題及解決辦法

一開始我的代碼是這樣的,編譯並沒有報錯。

但當運行時,輸出格式卻顯示錯誤,閏年之間的年份全部都被None代替。

經過上網查詢和同學的幫助,知道了要先定義count,當輸出閏年時count加上1;當count等於0時就說明年份區間沒有閏年,輸出None。同時將if語句嵌套在while語句內。

經過修改后的代碼如下

進入for循環

判斷年份是否是閏年

每得到一個閏年,輸出閏年,count+1。

最后的輸出結果如下。

 

 

第13周第十次作業:7-2 猜數字游戲

 

1.實驗代碼

#include<stdio.h>
int main()
{
    int number, yournumber = 0, n, i = 0;
    scanf("%d %d", &number, &n);
    while(i>=0)
    {
        scanf("%d",&yournumber);
        if(yournumber == number)
        {
            if(i == 0)
            {
                printf("Bingo!");
            }
            else if(i > 0 && i < 3)
            {
                printf("Lucky You!");
            }
            else
            {
                printf("Good Guess!");
            }
            break;
        }        
        else if(yournumber > number)
        {
            printf("Too big\n");
            i++;
        }
        else if(yournumber < number && yournumber >= 0)
        {
            printf("Too small\n");
            i++;
        }
        if(i >= n || yournumber < 0)
        {
            printf("Game Over");
            break;
        }
        
    }
    return 0;
}

2.設計思路

 

第一步:仔細閱讀作業題目要求,輸入格式及輸出格式。觀察輸出樣例及輸入樣例的數字間是否存在空格。

第二步:定義產生的數字(number),猜測的數字(yournumber),猜測次數(n),及i。

第三步:利用while循環,先分不同情況計算猜對數字時的次數n,輸出不同結果。

第四步:當猜測數字大於或小於被測數字時,輸出不同結果。同時i+1,最后將i與輸入的猜測次數n相比較,輸出不同結果。

流程圖

3.本題調試過程碰到問題及解決辦法

一開始我的代碼是這樣的,編譯並沒有報錯。

當我運行時,輸出僅一次,直接顯示Too small。並不滿足作業的輸出樣例。

調試過程如下

經過上網查找資料,發現其中需要運用到循環的知識,才能實現在一行中輸出每次猜測相應的結果,直到輸出猜對的結果或“Game Over”結束。

經改正,利用while循環可以實現多次猜測結果,最終輸出不同結果。

經過修改后的代碼如下。

調試過程如下。

 

 

4.個人總結

(1)在本周的學習當中,我們學習到了循環以及嵌套循環等知識點。無論是for循環,while循環還是do-while循環都有所理解,無論是哪種循環,都有它們存在的意義,能夠使編程更加有速率地完成。同時,也學習到了可以在循環語句中添加printf,通過調試輕松找到程序的錯誤之處。在查詢資料的過程中,不僅鞏固了之前所學習的內容,同時也將這幾周學習的內容更深的理解。

(2)本周我認為嵌套循環這個知識點比較難,不知道在哪里運用到嵌套循環這一知識,通常能夠理解代碼的含義,自己卻沒辦法將代碼編寫出來。這需要我不斷去積累知識,每天練習這個知識點,才能更好地掌握嵌套循環。

 

 

5.表格及折線圖

 表格

 

折線圖

 

6.作業點評

1.https://www.cnblogs.com/wafx/p/9998306.html

2.https://www.cnblogs.com/chumengGTRlhz/p/9991154.html

3.https://www.cnblogs.com/mayijing/p/10017399.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM