2 solutions
-
0
题面解释:在这个问题中,我们需要计算一个句子的平均重量。句子的平均重量是通过对句子中每个单词的长度进行计算得出的,单词的长度可以看作是它的重量,句子的平均重量则是所有单词长度的总和除以单词的数量。输入只有一行,包含一个字符串
S
,代表一个句子,长度不会超过 100 个字符,且只包含大小写的英文字母,单词之间用空格分隔。输出一个浮点数,表示句子S
的平均重量V
,四舍五入保留两位小数。例如,对于输入句子Who Love Solo
,我们首先拆分成单词,计算它们的长度,得出总长度为 11,单词数量为 3,因此平均重量 ( V = \frac{11}{3} \approx 3.6667 ),最终结果四舍五入为 3.67。问题分析:
题目要求我们计算一个句子中所有单词的平均长度,并输出结果,保留两位小数。
输入格式:
给定一行由单词组成的句子,单词之间由空格分隔。
输出格式:
计算这些单词的平均长度(即总长度除以单词数),保留两位小数进行输出。
解题思路:
逐个读取输入的单词,每次读取的单词都存储在变量中。 对于每个读取到的单词,计算其长度,并累加到总长度中,同时统计读取到的单词个数。最后,将累积的总长度除以单词数,得到平均长度,并使用和来确保输出保留两位小数。
代码
Java代码
import java.util.Scanner; class Main { public static void main(String[] args) { String s; Scanner scanner = new Scanner(System.in); s = scanner.nextLine(); int num = 0, cnt = 1;//cnt为单词个数,num为字母个数 for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == ' ') cnt++; else num++; } System.out.printf("%.2f", 1.0 * num / cnt);//输出时注意将int转为double } }
Python代码
s=input() cnt,num=1,0 #cnt为单词个数,num为字母个数 for i in range(len(s)): if (s[i]==' '):cnt=cnt+1 else: num=num+1 print("%.2f" %(num/cnt))
C++代码
#include <iostream> #include <stdio.h> using namespace std; int main() { string s; getline(cin,s); int cnt=1,num=0; //cnt为单词个数,num为字母个数 for (int i=0;i<s.size();i++) { if (s[i]==' ') cnt++; else num++; } printf("%.2f\n", 1.0*num/cnt);//输出时注意将int转为double }
- 1
Information
- ID
- 43
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 437
- Accepted
- 169
- Uploaded By