实验3

part 1 

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

 

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

由以上实验可看出continue的作用是结束本次循环,并开启下一次循环,所以demo5_1.cpp的结果中才没有i=3。

而break的作用是结束本层所有循环,直接进行循环外的下一条语句。所以demo5_2.cpp的结果中只有i=1,i=2。

#include <stdio.h>
const int LINE=3;        
const int COLUME=5;        
int main() {
    int line;    
    int col;     
    
    for(line=1; line<=LINE; line++) {
        for(col=1; col<=COLUME; col++) {
            if(col%3 == 0)  
                continue;
            
            printf("%5d", col);    
        }
        
        printf("\n"); 
    }
     
    return 0;
}

#include <stdio.h>
const int LINE=3;        
const int COLUME=5;        

int main() {
    int line;     
    int col;  

    for(line=1; line<=LINE; line++) {
        for(col=1; col<=COLUME; col++) {
            if(col%3 == 0) 
                break;
            
            printf("%5d", col);
        }
        
        printf("\n"); 

    }
     
    return 0;
} 

continue和break在内层循环时,都不影响外层循环。

part 2

#include <stdio.h>
int main() {
    int number, max, min, n;
    
    n=1;
    printf%d", &number);
    ("输入第%d个数: ", n);
    scanf("
    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;
} 

拓展

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

part 3

 

#include <stdio.h>
 #include <math.h>
 int main() {
     int a,b,c;
     a=101;
     c=0;
     while(a<=200){
         for(b=2;b<sqrt(a);b++){
             if(a%b==0)
             break;
         }
         if(b>sqrt(a)){
         
             printf("%5d",a);
            c++; 
         if(c%5==0)
           printf("\n");
       }
        a=a+1;
     }
    printf("\n");
    printf("101~200之间共有%d个素数",c);
     return 0;
 }

 

 

#include<stdio.h>
   int main(){
       int a,b,c;
       c=5;
     
       printf("\n");
       fora=1;a<=c;a++)
       {
           for(b=1;b<=c-a;++b)
            {
        printf(" ");
            }
           for(b=1;b<=2*-1;++i) 
           { 
           printf("*");
           } 
        printf("\n");
       } 
       
       return 0;
   } 

 总结

加强了continue和break语句的理解。训练了while,for和if语句的基本用法。

本次实验自我动手的地方有很多,帮助我发现了不少漏洞。

感叹一下还是基础不牢,往后需注意。

最后      关于求素数的题目,我超级想吐槽,琢磨了老久才完成,到现在还怨念满满。

存疑 为何加上 #include <math.h>后   sqrt(int)才成立。

 评论:

https://www.cnblogs.com/zxy-345/p/10708159.html

https://www.cnblogs.com/ft1574497591/p/10712958.html

https://www.cnblogs.com/254729wjl/p/10705921.html

posted @ 2019-04-15 20:57  川山木水  阅读(105)  评论(4编辑  收藏  举报