第三次作業


作業要求【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2359

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

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

第一步:聲明兩個整形變量i,sum。

第二步:將sum變量賦值為0。

第三步:令i=1,判斷如果i<=100的話,那么進行sum=sum+i。i=i+1。然后再次判斷條件。

第四步:輸出sum的值。

流程圖

 

調試截圖

一開始沒有加上sum初始值為0,所以加上的和怎么也不對

知道錯誤后,加上之后結果便對了。這個錯誤很容易犯。

程序運行截圖


這回運行后結果便正確了。

 

 

 個人總結和遇到的問題

這是一些基礎的for循環問題,我最多並且最喜歡用的循環就是for循環,因為他能把事情很簡單化,直觀辨別出你的循環次數,很適合我們這些初學者。在慕課網上學習了數組,數組遠比我想象的難,你有的時候需要去遍歷數組,遍歷就是將數組中的每一個元素都賦值或者其他。數組可以解決數量龐大的數,但是我依舊不太理解數組的運用。

第9次作業 題目7-2 輸出閏年

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

 

第一步:定義兩個整形變量i,a。並將i賦值為2000,a賦值為0.

第二步:輸入一個數,將這個數賦值給a。

第三步:進行判斷,如果a小於i的話,那么跳轉第六步。否則執行第四步。

第四步:進行判斷,判斷i是否小於等於a,如果為真,那么進行第五步,否則結束語句。

第五步:進行判斷,如果a大於2100,跳轉第六步,如果a大於等於2004的話,執行第七步。否則的話,執行第八步。

第六步:輸出Invalid year!這句話,結束循環。

第七步:令i=i+1,並且進行判斷,如果不是100的倍數並且是4的倍數,那么輸出這個年份,如果是400的倍數,也輸出這個年份。

第八步:輸出None,並且結束循環。

流程圖

程序運行截圖

 

換了另一個數進行依然可以

程序調試截圖


雖然運行正確,但是當我自己修改下程序的話,就會發現400的倍數也是閏年,雖然題目中400的倍數不輸出,但是我認為應該加上那行代碼。

 

這是加上后的代碼

 

加上后代碼調試的結果,沒有什么錯誤,但是加上我認為程序會更完美。

 

 

 

 

 個人總結和遇到的問題

整體大多數的代碼都可以做出來,但是代碼比較復雜,我應該多加聯系來簡化代碼,這樣才能使程序清晰並且流暢運行。這周學到的ascll碼我認為很有用,ascll碼可以輸入或者輸出一些我們難以想象的字符。

第10次作業 題目 7-1 統計素數並求和

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

 

第一步:定義六個整形變量a,b,i,n,count,sum,flag。並將count,sum賦值為0,flag賦值為1;

第二步:輸入兩個值,分別賦值給a,b。令i=a

第三步:進行判斷,如果i<=b,執行第四步,否則,執行第六步。

第四步:令n=2,進行判斷n<i是否成立,如果成立的話將flag賦值為1,如果不是素數,那么就將flag賦值為0然后結束循環;

第五步:判斷如果flag等於1,並且i不等於1,那么就是素數,count加1,將這個數加進sum里。然后再次返回第三步。

第六步:輸出count,sum的值。

流程圖

程序運行截圖

 

但是當我輸入1和2時,結果本應該是1和2,但是卻不對 

隨后我便進行了調試

程序調試截圖

 

我發現了錯誤,我的程序把1也當成了素數,我便加了一個條件

 

 

運行結果便正確了

 

個人總結和遇到的問題

這周學習了指針,指針是指向一個地址,指針是數組的特殊形式,也可以在指針里定義一個字符串。代碼還是不夠簡便,需要多加鍛煉。

我認為代碼是越簡單越好,但是也不能過於簡單,像是定義變量定義a,b,c之類的,會讓看代碼的人不了解是什么意思,現在也是我的習慣,我也需要改一下。

總結圖表

 

 

點評博客【https://www.cnblogs.com/error203/p/9945496.html

    【https://www.cnblogs.com/moyoujiang/p/9939932.html

    【https://www.cnblogs.com/wangxiangbo/p/9948484.html


免責聲明!

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



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