题目描述
有一篇“杂文”,由一些整数、带小数点的实数和乱七八糟的单词(字符串)组成。整数的范围必须在-70000到70000之间;实数用一般形式表示,而不用科学计数法,大小也在-70000到70000之间,(输入文件中保证)有效数字不超过10位;凡不符合以上格式和范围的都是单词,一个单词内部不含空格。
这些内容由空格或者回车分割,连续的空格可能不只一个,也可能有空行。
求除了单词以外的整数和实数的算术平均值。
输入格式
由整数、实数和单词间隔形成的文章。
每行至多255个字符。文章大小至多100KB。
输出格式
文中符合要求的整数和实数的平均值,四舍五入保留小数点后2位。
输入样例
3 3.14aaa 5a
A5 -3
-3.145
输入样例
1.00
思路&strtod函数用法
string的stl函数大法好!
神奇的strtod函数!!!
double k;
char str[maxlen],*it;
scanf("%s",str);
k=strtod(str,&it);
k即strtod函数的返回值为一个double类型的实数 为字符串str前缀的实数
it为str除去能构成实数k的部分剩下的字符串
代码(C++)
#include <cstdio>
#include <string>
#include <stdlib.h>
using namespace std;
int num=0; double f,ans=0;
char s[70010],*c; string k;
int main()
{
while(~scanf("%s",s))
{
f=strtod(s,&c);
k=c;
if(f>=-70000&&f<=70000&&k=="")
++num,ans+=f;
}
if(num==0)
printf("0.00");
else
printf("%.2lf",ans/num);
return 0;
}