#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);//该循环问题在于:每次循环,对number是否等于-1判断了两次,效率不高。
printf("%f\n",1.0*sum/count);//由于1.0是浮点数,整体就会变成浮点数
return 0;
}
优化后:
#include <stdio.h>
int main()
{
int number;
int sum = 0;
int count = 0;
scanf("%d",&number);
while( number != -1){
sum += number;
count ++;
scanf("%d",&number);//虽然scanf也出现了两次,但其中一次不在循环内,只需执行一遍。
}
printf("%f\n",1.0*sum/count);//由于1.0是浮点数,整体就会变成浮点数
return 0;
}