实验三

Part 1. 验证性内容

在循环中使用break与continue的区别

1.

#include <stdio.h>
int main() {
    int i;
    
    // 在循环语句中使用break
    for(i=1; i<=5; i++) {
        if (i%3 == 0)  // 如果i是3的倍数,则结束整个循环 
            break;
        
        printf("i=%d\n",i);
    }
    
    return 0;
} 

#include <stdio.h>
int main() {
    int i;
    
    // 在循环语句中使用continue 
    for(i=1; i<=5; i++) {
        if (i%3 == 0)  // 如果i是3的倍数,则结束本次循环,开始下一次循环 
            continue;
        
        printf("i=%d\n",i);
    }
    
    return 0;
} 

总结:在循环语句中,break语句的作用是结束本层循环,转而执行本层循环语句后的语句,在例一中,在n=3时结束本次循环,即停止程序:而continue语句是指跳过循环体中位于该语句后的所有句,提前结束本次循环并开始新一轮的循环,所以跳过了n=3时的结果,继续进行循环n=4,和n=5

2.在嵌套语句中break与continue的不同

#include <stdio.h>
const int LINE=3;        // 定义符号常量LINE 
const int COLUME=5;        // 定义符号常量COLUME

int main() {
    int line;    // 定义变量line, 用来控制行数 
    int col;     // 定义变量col, 用来控制列数
    
    // 输出LINE行信息 
    for(line=1; line<=LINE; line++) {
        // 每一行中,利用循环,输出各列信息 
        for(col=1; col<=COLUME; col++) {
            if(col%3 == 0)  // 如果col是3的倍数,则结束本次循环,开始下一次循环 
                continue;
            
            printf("%5d", col);    
        }
        
        printf("\n"); // 每输出完一行,换行 
    }
     
    return 0;
} 

#include <stdio.h>
const int LINE=3;        // 定义符号常量LINE 
const int COLUME=5;        // 定义符号常量COLUME

int main() {
    int line;    // 定义变量line, 用来控制行数 
    int col;     // 定义变量col, 用来控制列数
    
    // 输出LINE行信息 
    for(line=1; line<=LINE; line++) {
        // 每一行中,利用循环,输出各列信息 
        for(col=1; col<=COLUME; col++) {
            if(col%3 == 0)  // 如果col是3的倍数,则结束内层循环体 
                break;
            
            printf("%5d", col);
        }
        
        printf("\n"); // 每输出完一行,换行 
    }
     
    return 0;
} 

总结:在嵌套语句中,break语句仍旧为结束循环语句,即在做每一行的循环语句中遇到第三次循环n=3时停止内循环,转而执行外循环,换行开始下一次每一行的循环,得到两列;continue语句中跳过了每一行n=3时的输出,所以仅输出n=1,2,4,5

Part 2.补足程序,使得程序运行

#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.编程输出101~200之间的所有素数,并输出这一区间素数的个数

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

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(){
    int n,m,i,s=0;
    for(n=101;n<=200;n=n+1){
        m=sqrt(n);
        for(i=2;i<=m;i++)
    if(n%i==0)
    break;
    if(i>m){
    
    printf("%5d",n);    
    s=s+1;
    if(s%5==0)
    printf("\n");
}
    }
    printf("\n");
    printf("101~200共有%d个素数",s);
    return 0;
}

 

2.

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

 

总结与体会:

循环语句还是有点困难,嵌套多层时会导致自己的逻辑混乱,有的题目不清楚算法,或是知道算法但是无法用计算机语言表达出来,例如打印星号的例题,不清楚嵌套的内层循环for(col=1;col<=2*line-1;col++)的运行逻辑。还是要多多训练,书上的例题只停留在看得懂,自己不会写的层面,第三章的C语言也太难了吧,花了很多时间在这上面了但是效果不太好。

 

 

 https://www.cnblogs.com/lvzixuan/p/10703453.html
https://www.cnblogs.com/xh66/p/10703809.html

https://www.cnblogs.com/hx-123/p/10692270.html

posted @ 2019-04-14 14:28  asjuv  阅读(171)  评论(1)    收藏  举报