#include
using namespace std;
int main()
{
int a,c=-1;
double avg,sum=1.0;
cout << "请输入要统计的数字:";
do{
cin >> a;
c++;
sum = sum + a;
avg = sum / c;
if (a==0)
break;
} while (1);
const int d=c;
cout << "您输入了" <<c<< "个数,平均值为:" << avg << endl;
return 0;
}
当sum为double类型时,avg = sum / c; 表达式中编译器会自动把c转换成double类型,double型的c=0时,其实只是约等于0;
而sum为int时,c不会转换,c=0就是0,除数为0当然就会报错 。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。