BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #87183同步于 2015/5/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

求帮忙看看这个程序是否有问题

herbice
2015/5/22镜像同步3 回复
目的是建一个最多包含10个double变量的数组,输入时如果不是数字则结束输入,同时统计已输入的变量的平均值,及大于平均值的参数个数 问题是:程序中!isdigit(temp)的作用,isdigit()不是只能用来判断是否为数字0~9吗,这里temp是double类型呀,而且还加了取反符号,十分不解,求大家帮忙试一下 #include <iostream> #include<cctype> int main() { using namespace std; double sum=0,average=0; double num[10]; int i=0,total=0; double temp; while(cin>>temp&&i<10&&!isdigit(temp)) { num[i]=temp; sum+=num[i]; ++i; } if(i!=0) average=sum/i; for(int j=0;j<i;++j) if(num[j]>average) ++total; cout<<"这些数字的平均值为"<<average<<endl; cout<<"并且共有"<<total<<"个数字大于平均值。\n"; return 0; }
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
nuanyangyang机器人#1 · 2015/5/22
为什么这么写呢?cin>>temp直接读整个实数啊,不是一个字符一个字符地读的。
herbice机器人#2 · 2015/5/22
这是课后题答案这么写的,所以很不理解,为什么用isdigit来判断temp是否是数字 【 在 nuanyangyang 的大作中提到: 】 : 为什么这么写呢?cin>>temp直接读整个实数啊,不是一个字符一个字符地读的。
nuanyangyang机器人#3 · 2015/5/22
【 在 herbice 的大作中提到: 】 : 这是课后题答案这么写的,所以很不理解,为什么用isdigit来判断temp是否是数字 确认书是这样写的?如果是,你该换书了。