题目描述
输入一串以'.'为结束的字符串,筛选出其中的数字字符并转换,然后求这些数字的平均数。
输入
输入一串以'.'为结束的字符串
输出
一行,一个保留两位小数的浮点数
样例输入 Copy
123#45.
样例输出 Copy
3.00
#include<stdio.h>
int main()
{
char ch;
int digit=0;
double sum=0;
while((ch=getchar())!='.')
{
if(ch>='0'&&ch<='9'){digit++;sum+=(ch-'0');}
}
printf("%.2lf",sum/digit);
}
#include <iostream>
using namespace std;
#include<stdio.h>
int main()
{
char ch;
int digit=0;
double sum=0;
cin>>ch;
while(ch!='.')
{
if(ch>='0'&&ch<='9'){
digit++;
sum+=(ch-'0');
}
cin>>ch;
}
printf("%.2lf",sum/digit);
}
#include <iostream>
#include <iterator>
#include <ranges>
#include <iomanip>
using namespace std;
int main()
{
double sum = 0.0;
int n = 0;
for (auto c : ranges::subrange(istream_iterator<char>(cin), istream_iterator<char>()))
{
if (c == '.')
break;
if (isdigit(c))
{
sum += c - '0';
n++;
}
}
cout << fixed << setprecision(2) << sum / n << endl;
return 0;
}
$ g++ -Wall -std=c++20 main.cpp
$ ./a.out
123#45.
3.00