欢迎光临
我们一直在努力

while与do-while循环对比(求平均值案例)

前面已经完整介绍了二者的区别,下面我们来一道题目直观感受。

题目要求

持续从控制台输入整数,输出-1代表结束输入,计算所有数字的平均值,-1不作为参与计算的数据

while循环代码

#include <stdio.h>
int main()
{
int number;
intsum=0;
intcount=0;
scanf("%d",&number);
while(number!=1)
{
sum+=number;
count++;
scanf("%d"&number);
}
if(count==0)
printf("没有输入有效数字\\n");
else
printf("%f\\n",1.0*sum/count);
return 0;
}

do-while循环代码

#include <stdio.h>
int main()
{
int number;
int sum=0;
int count=0;
do
{
scanf("%d",&number);
if(number!=1)
{
sum+=number;
count++;
}
}while(number!=1);
if(count==0)
printf("没有输入有效数字\\n");
else
printf("%f\\n",1.0*sum/count);
return 0;
}

两个小知识点

  • 1.0*sum/count:sum和count都是整数,直接相除会丢掉小数。先乘1.0把运算转成浮点运算,平均值才能保留小数
  • count==0判断:如果第一个数就输入-1,没有任何有效数字,此时count=0,直接做除法会除以零导致程序崩溃,所以必须加保护
  • 赞(0)
    未经允许不得转载:171主机测评 » while与do-while循环对比(求平均值案例)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址