FAFU OJ 简单求和

82 阅读1分钟

简单求和

Time Limit:1000MSMemory Limit:65536KB
Total Submissions:164Accepted:31

Share

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;
}


\

\