C语言成长3

第四章循环结构

循环结构主要有for语句,while语句和do-while语句。
三种语句的特点

语句 特点
for 确定次数
while 不确定次数
do-while 不确定次数且先执行循环体

while语句

在这里插入图片描述
while语句和for语句大致相同,但需要包含能最终改变循环条件真假性的操作。

do-while语句

先执行循环体后判断循环条件。所以无论循环条件的值如何,至少会执行一次循环体。
在这里插入图片描述

break语句和continue语句

在这里插入图片描述
1)、break语句强制循环结束,应该和if语句配合使用,即执行条件满足时,才执行break跳出循环。
2)、 continue语句的作用是跳过循环体中continue后面的语句,继续下一次循环。
3)、区别:break语句用于中止循环,也用于switch语句,continue语句只用于循环。

嵌套循环

求1到n的阶乘和,可用定义函数或嵌套循环。
以下的方法是嵌套循环
在这里插入图片描述

/*利用嵌套循环求m到n之间的全部素数*/
/*具体见p89*/
#include <stdio.h>
#include <math.h>
int main(){
    
    
	int i,k,n,m,flag=1,count=0,sum=0;
	double limit;
	
	printf("enter m n:");
	scanf("%d%d",&m,&n);
	
	if(n<m||m<1){
    
    
		printf("error!");
		}else{
    
    
		for(k=m;k<=n;k++){
    
    
			if(k==1){
    
    
				flag=0;
			}else if(k==2){
    
    
				flag=1;
			}else{
    
    
			flag=1;	
			limit=sqrt(k)+1;
			for(i=2;i<=limit;i++){
    
    
				if(k%i==0){
    
    
					flag=0;
					break;
				}
				
			}
		}
		if(flag==1){
    
    
			printf("%4d",k);
			sum=sum+k;
			count++;
			if(count%10==0){
    
    
				printf("\n");
			} 
		}
	}
	printf("\n");
	printf("total=%d",sum);
}
	return 0;
}

练习一下
打印菱形

#include <stdio.h>
int main(){
    
    
	int n,j,k,i,h,l,p,q;
	printf("enter n:");
	scanf("%d",&n);
		h=(n+1)/2;
		q=h-1;
	
	if(n%2==0){
    
    
		printf("error!");
	}else{
    
    
		for(k=1;k<=n;k++){
    
    
		if(k<=(n+1)/2){
    
    
			for(j=q;j>=k;j--){
    
    
				printf("%4c",' ');
			}
		
			for(i=1;i<=k;i++){
    
    	
				printf("%4c",'*');
				}
				for(l=3;l<=i;l++){
    
    
					printf("%4c",'*');
					}
					printf("\n");
			
			}else{
    
    
			
			while(h>0){
    
    
			h=h-1;
			for(p=h;p<=q;p++){
    
    
				printf("%4c",' ');
			}
			for(j=1;j<=h;j++){
    
    
				printf("%4c",'*');
					}
					for(l=1;l<h;l++){
    
    
						printf("%4c",'*');
					}
					printf("\n");
				}
			}
			}
			
		} 
	
	
	return 0;}

运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/U_2593579056/article/details/120628277