返回信息流目的是建一个最多包含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;
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #87183同步于 2015/5/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
求帮忙看看这个程序是否有问题
herbice
2015/5/22镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
这是课后题答案这么写的,所以很不理解,为什么用isdigit来判断temp是否是数字
【 在 nuanyangyang 的大作中提到: 】
: 为什么这么写呢?cin>>temp直接读整个实数啊,不是一个字符一个字符地读的。
【 在 herbice 的大作中提到: 】
: 这是课后题答案这么写的,所以很不理解,为什么用isdigit来判断temp是否是数字
确认书是这样写的?如果是,你该换书了。