用while语句循环做数学运算
求2+4+6+…+100
首先介绍一下,传说中的七步法,七步齐上,定能赢得while大题
(1)写出固定格式
(2)定义三个变量
n=1,sum=0或者chengji=1,a=第一项的值
(3)加入while语句
(4)找出相加或相乘的共多少项,然后。在while后的括号里,写上n<=项数
(5)括号内写上
n=n+1;
sum=sum+a或者chengji=chengji*a
(6)列出第n项和第(n-1)项的关系式,并把这关系用a的形式表现出来
(如:第n项=诶(n-1)项*n 则写成 a=a*n,并且把a的式子写进括号内)
(7)将要求的内容输出,检查循环的开头与结尾(printf不写在大括号之内)
所以,这道题要怎么处理,首先,我们应该要知道,第n项=,第(n-1)项+2,也就是说可以写成,a=a+2
开始写一写
#include
int main()
{
int n=1,sum=0,a=2;
while(n<=50)
{
n=n+1;
sum=sum+a;
a=a+2;
}
printf("计算结果是%d\n",sum);
return 0;
}
注意哦(´-ω-`)while后面没有分号,写完后记得自己把数放进程序检查一下。
求2*4*6*8…*100??怎么求,自己先套七步法算一下哦~
求1!+2!+3!+…+20!
怎么写,这道题的难度,怎么样把,这个20!跟他的前一项的关系找出来
其实可以明白3!=3*2*1,5!=5*4*3*2*1
所以第n是20!,第n-1是19!
也就是说 第n项=第n-1项*n这个数本身。
所以我们可以写成,a=a*n
一起来写一下这道题吧~
int n=1,sum=0,a=1;
while(n<=20)
{
n=n+1;
sum=sum+a;
a=a*n;
}
printf("计算结果是%d\n",sum);
用while语句循环
某社团招新,同学们一个接一个进行面试才能被选上,但是本次面试官只肯用300分钟来进行面试,请编写程序统计,300分钟后,共面试了多少人!??
float zongshijian=0,shijian;
int n=0;
while(zongshijian<300)
{
printf("还麻烦您记录一下第%d个同学的时间,单位为分钟,谢谢!",n+1)
scanf("%f",&shijian);
zongshijian=zongshijian+shijian;
n=n+1;
}
printf("所以,总共面试了%d人\n",n);
这里的限制条件,是小于300还是小于等于300,可以把300代进去,我们现,当刚好300了,面试官其实并不想再面试一个了,所以只能到此结束了。
提示:如果要加个条件,今天只愿意面试100人,那么其实是可以在while{}中加入一个:
if(n>=100)
break;
请编程输出100-300之间(包括100-300)的数。
int n=99;
while(n<=300)
{
n=n+1;
printf("%d\t",n);
}
这样的题,如果出改错。一定记得代几个数进去看一下。
用continue语句提前结束本次循环
请编程输出100-300之间(包括100-300)不能被4整除的数。
int n=99;
while(n<=300)
{
n=n+1;
if(n%4==0)
continue;
printf("%d\t",n);
}
用do…while语句循环
大家先对比一下,就知道区别在哪了,其实这个就是while循环的改编版。
比如还是求2+4+6+…+100
int n=1,sum=0,a=2;
while(n<=50)
{
n=n+1;
sum=sum+a;
a=a+2;
}
printf("计算结果是%d\n",sum);
然后用do while是这样
do
{
n=n+1;
sum=sum+a;
a=a+2;
}
while(n<=50)
printf("计算结果是%d\n",sum);
for语句循环
用for语句循环,最常用
for(语句1;语句2;语句3)
{
咋样
}
我们来对比一下,while循环
语句1
while(语句2)
{
咋样
语句3
}
来来来,再来做一下这道题1!+2!+3!+…+20!
for(sum=0,a=1,n=1;n<=20;n=n+1)
{
a=n*a;
sum=sum+a;
}
printf("计算结果是%d\n",sum);
注意哦,一般情况下,for那个括号里的内容可以不写,但是分号必须留下~
如果在程序中看到n++,不用怕,因为那个就是n=n+1,同样n--就是n=n-1