简单求和
| Time Limit: | 1000MS | Memory Limit: | 65536KB |
|---|---|---|---|
| Total Submissions: | 164 | Accepted: | 31 |
Description:
一行字符串原本里面包含n个数,不过每个数之间被字母或空格插入,导致不能“愉快”的读入求和了。现在你身为acmer,来帮帮求和吧!
Input:
多组测试数据,每组给你一行字符串。每个数据长度不大于1000
Output:
每组输出所给字符串里面的数之和,答案保留小数点后五位。
Sample Input:
1a0z520bbba2a3
Sample Output:
Case 1: 521.00000
Case 2: 5.00000
Source:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include <sstream>
#include <cctype>
#include <cstring>
using namespace std;
int main()
{
char s[10000];
int T = 0;
while (gets(s))// gets 输入包括‘\n’
{
stringstream st;//<sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作
int len = strlen(s)-1;
for (int i = 0; i < len; i++)
{
if (isalpha(s[i]))//判断是否为字母
s[i] = ' ';//把字母设置成空格,相当于对这个字符串”还原“,都还原后,进行正常的读入double里面。
}
st << s;
double t;
double sum = 0;
while (st >> t)
{
sum += t;
}
printf("Case %d: %.5lf\n", ++T, sum);
}
return 0;
}
\
\