第三次上机作业2

---恢复内容开始---

实验结论:

 demo5-1结果:

 demo5-2结果:

 对比发现continue和break的区别:continue是结束这次的循环,因为i只能取1-5之间的整数,所以i=1 2 4 5 的时候都不是3的倍数,不用结束本次循环。break是结束整个循环i依旧可以去1-5之间的数,但3是3的倍数,所以到3 的时候结束了整个循环,屏幕上不再出现4和5

对比demo6-1和6-2结果发现  break语句包含在嵌套里,它只跳出最里面的循环,不影响大循环,只是内部循环break之后的都没有了。continue也不影响大循环,只跳过当前的小循环,后面的小循环继续。

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;
} 
 

结果截图:

part3:

#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.星号编程题的逻辑真的好难啊,用脑子想我都懂,就是不知道怎么用电脑表示出来,一开始我弄的符号只有前半段,吓死我了,后来发现我把列数打错了,还是有点迷糊。

---恢复内容结束---

---恢复内容结束---

猜你喜欢

转载自www.cnblogs.com/zhaoyingshan/p/10704701.html
今日推荐