第三次上機做業2

---恢復內容開始---編程

實驗結論:spa

 demo5-1結果:code

 demo5-2結果:blog

 對比發現continue和break的區別:continue是結束此次的循環,由於i只能取1-5之間的整數,因此i=1 2 4 5 的時候都不是3的倍數,不用結束本次循環。break是結束整個循環i依舊能夠去1-5之間的數,但3是3的倍數,因此到3 的時候結束了整個循環,屏幕上再也不出現4和5io

對比demo6-1和6-2結果發現  break語句包含在嵌套裏,它只跳出最裏面的循環,不影響大循環,只是內部循環break以後的都沒有了。continue也不影響大循環,只跳過當前的小循環,後面的小循環繼續。class

 

part2:循環

源程序程序

#include <stdio.h>
int main() {
    int number, max, min, n;
    
    n=1;
    printf("輸入第%d個數: ", n);
    scanf("%d", &number);
    
    max = number;
    min = number;
    
    while(n < 5) {
        n++;
        printf("輸入第%d個數: ", n);
        scanf("%d", &number);
        
        if(number > max)
            max = number;
        else if(number < min)
            min = number;
    }
    
    printf("最大數爲: %d\n", max);
    printf("最小數爲: %d\n", min);
    
    return 0;
} 
 

結果截圖:
im

part3:demo

#include<stdio.h>
int main(){
    int k,n,i;
    k=100;
    i=0;
    while(k<=200){
     k++;
        for(n=2;n<=k;n++){
            if(k%n==0&&n<k){
                break;
                }
                else if(k%n!=0){
                    continue;
                }
                else{
                    printf("%4d",k);
                    i++;
                    if(i%5==0){
                        printf("\n");
                        
                    }
                }
        }
    }
    printf("\n101~200之間共有%d個素數.",i);      
    return 0;
}

 

結果如圖:

 

*編程練習

#include<stdio.h>
const int H=5;
const int L=9;
int main(){
    int line,col,a,b;
      for(line=1;line<=5;++line){
          a=6-line;
          b=4+line;
          for(col=1;col<=9;++col){
              if(a>col||b<col){
                  printf(" ");
                  continue;
              }
               printf("*");
          }
           printf("\n");
      }
    return 0;
}

結果截圖:

 

我出現的錯誤和踩坑: 

1.在作判斷三角形的時候,我把等腰的條件放在前面了,把等邊條件放在後面並且還加上了else if。如今我明白個人錯誤有兩點,一是等邊的條件比等腰的更加苛刻,也就是說,符合等邊的必定符合等腰的條件,而if語句是若是if後面的條件成立了就顯示這個if下面的,後面的就不看了,等邊三角形已經符合等腰的條件了,因此就出現了我明明打的是等腰三角形,屏幕上會打出「這是等腰三角形」的狀況。後來我把等邊的條件放在前面了但是等腰等邊條件我用的都是if,此時我輸入等腰三角形的數值後,屏幕上出現了「這是等腰三角形」「這是等邊三角形」,我才意識到我沒有加else if。先判斷是否是三角形(if) 若是是,判斷是否是等邊(if),若是不知足等邊這麼苦苛刻的條件,退而求其次,(else if)看看是否知足等腰的條件,若是等腰也不符合則(else)是通常三角形;若是不知足三角形條件(else),則不是三角形。

2.不知道如何跳出while循環,前面涉及到的while都是不須要終止的,我就照貓畫虎把這個的也寫上了,一開始寫的是n<=5,結果出來了6行文字。我以爲我這樣想邏輯是對的呀,後來改爲了<5就是5行了。個人理解是,n++在最後給n的值加上一。算完第一次,第二次開始算n的時候,n=2,以此類推。到算完第五行(正好符合題意)的時候,再算第六行的n,n=5,不符合題意。我仍是不太明白!!

3.星號編程題的邏輯真的好難啊,用腦子想我都懂,就是不知道怎麼用電腦表示出來,一開始我弄的符號只有前半段,嚇死我了,後來發現我把列數打錯了,仍是有點迷糊。

 

---恢復內容結束---

---恢復內容結束---

相關文章
相關標籤/搜索