第五章.循环结构程序设计

【例5.1】求1+2+3+4+5+6+7+8+…+100

#include<stdio.h>
int main()
{
	int i=1,sum=0;
	while(i<=100)
	{
		sum=sum+i;
		i++;
	}
	printf("sum=%d\n",sum);
	return 0;
}

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

【例5.2】用do…while语句求1+2+3+…+100

#include<stdio.h>
int main()
{
	int i=1,sum=0;
	do
	{
		sum=sum+i;
		i++;
	}while(i<=100);
    printf("sum=%d\n",sum);
	return 0;
}

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

【例5.3】while和do while循环的比较。

(1)用while循环结构

#include<stdio.h>
int main()
{
	int i,sum=0;
	printf("Please enter i,i=?");
	scanf("%d",&i);
	while(i<=10)
	{
		sum=sum+i;
		i++;
	}
    printf("sum=%d\n",sum);
	return 0;
}

运行两次
在这里插入图片描述
在这里插入图片描述

(2)用do…while循环结构

#include<stdio.h>
int main()
{
	int i,sum=0;
	printf("Please enter i,i=?");
	scanf("%d",&i);
	do
	{
		sum=sum+i;
		i++;
	}while(i<=10);
    printf("sum=%d\n",sum);
	return 0;
}

运行两次
在这里插入图片描述
在这里插入图片描述

【例5.4】在全系1000名学生中举行募捐,当总数 达到10万时就结束,统计此时募捐的人数以及平均每人捐款的数目

#include<stdio.h>
#define SUM 100000
int main()
{
	float amount,aver,total;
	int i;
	for(i=1,total=0;i<=1000;i++)
	{
		printf("please enter amount:");
		scanf("%f",&amount);
		total=total+amount;
		if(total>=SUM)break;
	}
	aver=total/i;
	printf("num=%d\naver=%10.2f\n",i,aver);
	return 0;
}

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

【例5.5】输出100~200进不能被3整除的数

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

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

【例5.6】输出矩形矩阵

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

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

【例5.7】用公式4/π=1-1/3+1/5-1/7+…求π的近似值,直到发现某一项的绝对值小10-6为止(该项不累加)

#include<stdio.h>
#include<math.h>
int main()
{
   int sign=1;
   double pi=0.0,n=1.0,term=1.0;
   while(fabs(term)>=1e-6)
   {
   	pi=pi+term;
   	n=n+2;
   	sign=-sign;
   	term=sign/n;
   }
   pi=pi*4;
   printf("pi=%10.8f\n",pi);
   return 0;
}

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

【例5.9】输入一个大于3的整数n,判断它是否为素数。

#include<stdio.h>
int main()
{
	int n,i;
	printf("please enter ainteger number,n=?");
	scanf("%d",&n);
	for(i=2;i<n;i++)
		if(n%i==0)break;
		if(i<n)printf("%d isnot aprime number.\n",n);
		else printf("%d is a prime number.\n",n);
		return 0;
}

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

【例5.10】求100~200的全部素数

#include<stdio.h>
#include<math.h>
int main()
{
	int n,k,i,m=0;
	for(n=101;n<=200;n=n+2)
	{
		k=sqrt(n);
		for(i=2;i<=k;i++)
			if(n%k==0)break;
			if(i>=k+1)
			{
				printf("%d ",n);
				m=m+1;
			}
			if(m%10==0)printf("\n");
	}
	printf("\n");
	return 0;
}

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

猜你喜欢

转载自blog.csdn.net/Mrsir1121/article/details/87645833