发布网友 发布时间:2022-04-23 02:21
共1个回答
热心网友 时间:2023-01-24 00:45
main()
{
intsum=1,i=1,n;
scanf("%d",&n);/*用户输入n*/
do
{
sum*=i;/*等价于sum=sum*i*/
i++;
}while(i<=n);
printf("%d",sum);/*输出总和sum*/
}
do-while是循环的一种,表示满足while()括号里的条件时循环执行do里的内容,直到while()括号里的条件不成立。它和while()循环和不同在于do-while必定执行一次do{}里的内容,因为它是先执行后判断;而while()循环先判断后执行,可以不执行循环体语句。
本例中当i<=n时循环执行do{}里的内容。
假设n=3,第一次sum=1,i=1,则sum=1*1=1;第二次循环sum=1*i=1*2(因为i=2了);第三次sum=1*2*3(i=3),这样就是1*2*...*N的和的求法。当然也可以用for()循环和while()循环来改写,算法思路是一样的。for()循环相对简单
main()
{
intsum=1,i=1,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum*=i;
}
printf("%d",sum);
}
while()型:
main()
{
intsum=1,i=1,n;
scanf("%d",&n);
while(i<=n)
{
sum*=i;
i++;
}
printf("%d",sum);
}