第五章 循环结构程序设计

第五章 循环结构程序设计

例5.1求1+2+3+……+100
例5.2用do……while语句求1+2+3+……+100
例5.3while和do……while循环的比较
例5.4在全系1000名学生中举行慈善募捐,当总数达到10万时就结束,统计此时捐款的人数以及平均每人捐款对待数目
例5.5要求输出100~200的不能被3整除的数
例5.6输出以下4*5的矩阵
例5.7用公式求Π/4≈1-1/3+1/5-1/7+……求Π的近似值,直到发现某一项的绝对值小于10^-6(该项不累加)
例5.8求Fibonacci数列的前40个数
例5.9输入一个大于3的整数n,判定它是否为素数
例5.10求100~200的全部素数
例5.11译密码

例5.1求1+2+3+……+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;
}

运行结果如下:

sum=5050
Press any key to continue

例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;
}

运行结果如下:

sum=5050
Press any key to continue

例5.3while和do……while循环的比较

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

运行结果如下:

Please enter i,i=?5
sum=5040
Press any key to continue

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

#include<stdio.h>
#define SUM 10000
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=%f\n",i,aver);
return 0;
}

运行结果如下:

please enter amount:2000
please enter amount:6000
please enter amount:50000
num=3
aver=19333.333333
Press any key to continue

例5.5要求输出100~200的不能被3整除的数

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

运行结果如下:

 100  101  103  104  106  107  109  110  112  113  115  116  118  119  121  122  124  125  127  128  130  131  133  134  136  137  139  140  142  143  145  146  148  149  151  152  154  155  157  158  160  161  163  164  166  167  169  170  172  173  175  176  178  179  181  182  184  185  187  188  190  191  193  194  196  197  199  200
Press any key to continue

例5.6输出以下4*5的矩阵

#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;
}

运行结果如下:


1       2       3       4       5
2       4       6       8       10
3       6       9       12      15
4       8       12      16      20
Press any key to continue

例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;
}

运行结果如下:

pi=3.14159065
Press any key to continue

例5.8求Fibonacci数列的前40个数

#include<stdio.h>
int main()
{
int f1=1,f2=1,f3;
int i;
printf("%12d\n%12d\n",f1,f2);
for(i=1;i<=38;i++)
{
f3=f1+f2;
printf("%12d\n",f3);
f1=f2;
f2=f3;
}
return 0;
}

运行结果如下:

           1
           1
           2
           3
           5
           8
          13
          21
          34
          55
          89
         144
         233
         377
         610
         987
        1597
        2584
        4181
        6765
       10946
       17711
       28657
       46368
       75025
      121393
      196418
      317811
      514229
      832040
     1346269
     2178309
     3524578
     5702887
     9227465
    14930352
    24157817
    39088169
    63245986
   102334155
Press any key to continue

修改后:

#include<stdio.h>
int main()
{
int f1=1,f2=1;
int i;
for(i=1;i<=20;i++)
{
printf("%12d %12d ",f1,f2);
if(i%2==0) printf("\n");
f1=f2+f1;
f2=f2+f1;
}
return 0;
}

运行结果如下:

           1            1            2            3
           5            8           13           21
          34           55           89          144
         233          377          610          987
        1597         2584         4181         6765
       10946        17711        28657        46368
       75025       121393       196418       317811
      514229       832040      1346269      2178309
     3524578      5702887      9227465     14930352
    24157817     39088169     63245986    102334155
Press any key to continue

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

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


运行结果如下:

please enter a integrer number,n=?5
5 is a prime number.
Press any key to continue

例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%i==0)break;
		if(i>=k+1)
		{
			printf("%5d",n);
			m=m+1;
		}
		if(m%10==0) printf("\n");
	}
	printf("\n");
	return 0;
}



运行结果如下:

  101  103  107  109  113  127  131  137  139  149
  151  157  163  167  173  179  181  191  193  197
  199
Press any key to continue

例5.11译密码

#include<stdio.h>
int main()
{
	char c;
	while((c=getchar())!='\n')
	{
		if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
		{c=c+4;
		if(c>='Z'&&c<='Z'+4||c>'z')
			c=c-26;
		}
		printf("%c",c);
	}
	printf("\n");
	return 0;
}


运行结果如下:

d
h
Press any key to continue

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值