第五章 循环结构程序设计
例5.1求从1加到100
#include <stdio.h>
main()
{
int i,m=0;
for (i=1;i<=100;i++)
{m=m+i,
printf("%d\n",m);
}}
结果为;
例5.2用do while求从1加到100
#include <stdio.h>
int main()
{
int i=1,sum=0;
do
{
sum+=i;
i++;
}
while(i<=100);
while(i<=100)
{
sum+=i;
i++;
}
for(i=1;i<=100;i++)
{
sum+=i;
}
printf("%d",sum);
return 0;
}
结果为:
例5.3while和do…while循环的比较
例5.4在全系1000名学生中举行慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数以及平均每人捐款的数目
#include <stdio.h>
#define MAX 100000
int main()
{
int i;
float sum = 0;
float ave,mei;
for( i = 1; i <= 1000; i++)
{
printf("请输入要捐款的金额:");
scanf("%f",&mei);
sum = sum + mei;
if(sum >= MAX)
break;
}
ave = sum / i;
printf("捐款人数:%d\n",i);
printf("平均每人捐款:%f\n",ave);
return 0;
}
结果为:
例5.5要求输出100到200的不能被3整除的数
#include "stdio.h"
#include "stdlib.h"
void func()
{
int i;
for ( i = 100; i <= 200; )
{
if ( i % 3 == 0 )
{
printf( "%d\n", i );
i += 3;
}
else
{
i++;
}
}
}
int main( int argc, char *argv[] )
{
func();
return 0;
}
例5.6
例5.7用公式π/4=1-1/3+1/5-1/7+…求π的近似值,直到发现某一项的绝对值小于10^-6为止(该项不累加)
#include<stdio.h>
#include<math.h>
void main()
{
double s=0,pi,t,d,c;
double i,n,j=1; //这里都修改为double
for(i=2,n=1;fabs(1/n)>pow(10,-6);i++,n+=2)
s=s+pow(-1,i)*j/n; //否者这里是整形的除法,会对结果取整
printf("%lf\n",s); //由于s是double,所以应该用%lf
printf("pi=%lf\n",pi=s*4);
}
例5.8
例5.9输入一个大于3的整数n,判断它是否为素数
#include <stdio.h>
int main()
{
int n, i;
//输入数字
printf("Please enter number: ");
scanf("%d", &n);
//判断数字是否大于3
for (; n <= 3; printf("Please enter number: "), scanf("%d", &n));
//判断数字是否是素数
for (i = 2; i < n; i++)
if (!(n%i)) break;
n==i ? printf("%d is prime number!\n", n) : printf("%d is not prime number!\n", n);
return 0;
}
例5.10求100到200的全部素数
# include <stdio.h>
main()
{
int i,z,s=1;
for(i=101;i<=200;i=i+1)
{
s=1;//这里的S需要初始化,因为你一次循环后S都为0了
for(z=2;z<i;z++)
{if(i%z==0)
{s=0;
break;}
}
if(s!=0)
printf("%d ",i);
}
}