实验三

Part1: 验证性内容

分别运行程序demo5_1.cpp和demo5_2.cpp,结合运行结果,对比和理解控制语句continue和break的功能。

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

运行结果:

demo5_2

#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:结束本次循环,进入下一次循环。

break:结束本层循环。

分别运行程序demo6_1.cpp和demo6_2.cpp,结合运行结果,对比和理解在嵌套的循环中控制语句。

demo6_1

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

 运行结果:

 demo6_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)
            break;
            
            printf("%5d",col);
        }
        printf("\n");
    }
    return 0;
}

运行结果:

在两层嵌套循环中,内层循环中如果出现continue或break,都不影响外层循环。

 

Part2: 补足程序,使得程序运行

编程找出5个整数中的最大数和最小数,并输出找出的最大数和最小数。

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

运行结果:

for循环改写:

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

编程输出101~200之间所有素数,并输出这一区间内素数个数。

#include<stdio.h>
#include<math.h>
int main(){
    int n,m,i,k=0;
    for(n=101;n<=200;n++){
        m=sqrt(n);
        for(i=2;i<=m;i++){
            if(n%i==0)break;
        }
        if(i>m)
        printf("%5d",n);
        else
        continue;
        k++;
        if(k%5==0)
        printf("\n");
    }
    printf("\n101~200之间共有%d个素数.",k);
    return 0;
}

运行结果:

编程打印输出如下图案。

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

int main(){
    int line,m,n,a,b;
    for(line=1;line<=5;line++){
        m=5-line;
        n=2*line-1;
        for(a=1;a<=m;a++)
        printf(" ");
        for(b=1;b<=n;b++)
        printf("*");
        printf("\n");
    }
    return 0;
}

运行结果:

 

实验总结与体会:

这次试验比前两次难一些,也借此机会对循环结构有了更深入的了解。三种循环设置条件的时候略有不同,还是需要多试来掌握规律。

找素数的那道题参考了书上判别素数的方法,但还是在循环的语句上摸索了挺久的,好在最后运行出了正确的结果,还是很开心的。

学到的东西越来越多了,希望自己可以抽出更多时间来练习和熟悉它们。

 

评阅:

https://www.cnblogs.com/qwer9107/p/10720286.html
https://www.cnblogs.com/333y/p/10719894.html
https://www.cnblogs.com/mjc217/p/10714147.html

posted @ 2019-04-14 00:02  PKD  阅读(172)  评论(6编辑  收藏  举报