C语言------循环结构I

1 、实训名称

实训5:循环结构I

2 、实训目的及要求

1 、熟练掌握while、do-while和for语句实现循环的方法。
2 、掌握循环程序设计中一些常用算法(如穷举、迭代、递推等)。
3 、掌握常用的无条件控制语句在循环中的控制作用。
4 、理解循环嵌套及嵌套的执行过程。

3 、源代码及运行截图

【5-22】
(1)

#include<stdio.h>
 int main() {
 	int i,n,a=0;
 	printf("请输入n:");
	scanf("%d",&n);
	for(i=2;i<n;i++)
	        {
	        	if(n%i==0) {a++;}//素数个数加一;
			 } 
   if(a==0)
      	printf("%d是素数\n",n);
    else
       	printf("%d不是素数\n",n);
 	return 0;
 }

在这里插入图片描述
在这里插入图片描述

(2)

#include<stdio.h>
 int main() {
 	int n=100;
 	int sum,a;
	for(int i=3;i<n;i++)//外层循环进行数值增加 
	        {
	          for(a=2;a<i;a++)//内层循环进行素数判断 
	          if(i%a==0)break;
	          if(a==i) sum+=i;	
			 } 
	 printf("s=%d\n",sum);
	 return 0;
 }

在这里插入图片描述

【5-23】
(1)

 #include<stdio.h>
int main(){
	int n,k,x,s=0;
 	printf("请输入n:\n");
 	scanf("%d",&n);
 	x=n;
 	while(x){
 		k=x%10;
 		s=s*10+k;
 		x=x/10;
	 }
	 if(s==n)
	 	printf("%d是回文数\n",n);
	 else
	    printf("%d是不是回文数\n",n);
	  return 0;    
	 }

在这里插入图片描述
在这里插入图片描述

(2)

#include<stdio.h>
#include<stdlib.h>
int main(){
	int n,k,x,s=0,sum;

 	for(n=200;n<=3000;n++){
 		x=n;
 		while(x>0){
 		k=x%10;
 		s=s*10+k;
 		x=x/10;
	 }
	 if(s==n)
	    {
	    	sum+=n; 
		}
		s=0;
	 }
 printf("%d\n",sum);
	 
	  return 0;    
	 }

在这里插入图片描述

【5-24】
(1)

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

在这里插入图片描述

(2)

#include<stdio.h>
#include<math.h>
int main(){
  int i=0;
  int a,b,c;
  for(i=100;i<=999;i++){
  	a=i%10;
  	b=(i/10)%10;
  	c=i/100;
  	if(i==pow(a,3)+pow(b,3)+pow(c,3)){
  		printf("%d\n",i);
	  }
  } 
	return 0;
}

在这里插入图片描述

【5-25】

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

int main(int argc, char *argv[])
{
  int n,i,s=0;//n为余数,i为商,s为和 
  int k;
for(k=100;k<=999;k++){
   i=k;
   while(i>0){
   n=i%10;
   i=i/10;
   s=s+(n*n*n);}  
   if(s==k){
   printf("%d\t",k);
            }
   s=0;      
  }
  system("PAUSE");	
  return 0;
}

在这里插入图片描述

(2)

#include<stdio.h>
#include<math.h>
int main(){
  int sum1=0,sum2=0,sum3=0;
  for(int k=1;k<=100;k++){
  	 sum1+=k;
  }  printf("sum1=%d\n",sum1);
  
  for(int i=1;i<=50;i++){
  	sum2+=pow(i,2) ;
  }  printf("sum2=%d\n",sum2);
  
  sum3=sum1+sum2;
  printf("sum3=%d\n",sum3); 
	return 0;
}

在这里插入图片描述

(3)

#include<stdio.h>
#include<math.h>
int main(){
  int a=1,b=1;
  double sum=0;
  for(int i=1;i<=40;i++){
  	sum+=a/b;
  	a*=i;
  b*=(2*i+1);
  }
  printf("%.3f\n",sum);
	return 0;
}

在这里插入图片描述

4 、小结

通过循环嵌套可以实现数目较大的重复运算,在一些数学问题上例如求通项公式的和需要运用到循环嵌套,一方面实现新增的新数。另一方面通过累加器不断增加。循环和循环嵌套的使用能够方便解决一些问题。一般要画出循环嵌套的示意图,在进行代码的编写。否则,容易搞混嵌套的使用。

posted on 2022-08-28 22:19  热爱技术的小郑  阅读(178)  评论(0编辑  收藏  举报