代码拉取完成,页面将自动刷新
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
string s;
while (getline(cin, s)) { // 接受一整行字符串
float sum = 0;
int count = 0;
int flag = 1;
for (int i = 0; i < s.size(); i++) {
if (s[i] == 'A') {sum += 4; count++;}
else if (s[i] == 'B') {sum += 3; count++;}
else if (s[i] == 'C') {sum += 2; count++;}
else if (s[i] == 'D') {sum += 1; count++;}
else if (s[i] == 'F') {sum += 0; count++;}
else if (s[i] == ' ') continue;
else {
flag = 0;
cout << "Unknown" << endl;
break;
}
}
if (flag) printf("%.2f\n", sum / count);
}
return 0;
}
import java.util.*;
import java.lang.*;
public class Main{
public static Map<String,Integer> map = new HashMap<>();
static{
map.put("A",4);
map.put("B",3);
map.put("C",2);
map.put("D",1);
map.put("F",0);
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
String line = sc.nextLine();
String[] items = line.split(" ");
double sum = 0.0;
int count = 0;
boolean flag = false;
for(String item:items){
if(map.get(item) != null){
sum += map.get(item);
count++;
}else{
flag = true;
}
}
if (flag) {
System.out.println("Unknown");
} else {
System.out.printf("%.2f\n", sum / count);
}
}
}
}
'''
1) 构建成绩映射字典;
2) 遍历每门成绩, 若不在字典里, 则返回'Unknown', 否则累加成绩, 最终算平均值
时间复杂度: O(n)
空间复杂度: O(n)
'''
class Solution():
def cal_avg_score(self, datas=[], level_map_dict={}):
#计算平均成绩
total_sum = 0
for score in datas:
if score in level_map_dict:
total_sum += level_map_dict[score]
else:
return 'Unknown'
return '{:.2f}'.format(float(total_sum) / len(datas))
def main(self, ):
#构建映射字典
level_map_dict = {'A': 4, 'B': 3, 'C': 2, 'D': 1, 'F': 0}
while True:
try:
#获取每行输入
input_datas = list(input().split())
#调用cal_avg_score,得到每行输出
print(self.cal_avg_score(datas=input_datas, level_map_dict=level_map_dict))
# EOFError: EOF when reading a line
except EOFError as e:
break
solution_obj = Solution()
solution_obj.main()
package main
import(
"bufio"
"fmt"
"os"
"strings"
)
func main(){
//创建一个bufio.Reader对象,用于从标准输入(即键盘)读取数据
reader := bufio.NewReader(os.Stdin)
score := map[string]float64{"A":4, "B":3, "C":2, "D":1, "F":0}
for{
avg := 0.0
flag := true
grade, _, err := reader.ReadLine()
grade_list := strings.Split(string(grade), " ")
//如果err的值不等于nil,则表示输入结束
if err != nil{
break
}
for i := 0; i < len(grade_list); i++{
//ok表示字典中是否包含该key
value, ok := score[grade_list[i]]
if ok == false{
flag = false
fmt.Println("Unknown")
break
}
avg = avg + value
}
if flag{
avg = float64(avg)/float64(len(grade_list))
fmt.Println(fmt.Sprintf("%.2f", avg))
}
}
}
// 引入readline模块读取输入
const readline = require("readline");
// 创建readline接口
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
function processInput() {
// 用map存储分数和字母的对应关系
let map = new Map();
map.set("A", 4);
map.set("B", 3);
map.set("C", 2);
map.set("D", 1);
map.set("F", 0);
rl.on("line", (input) => {
let arr = input.split(" ");
let res = 0;
let sumScore = 0;
for (let i = 0; i < arr.length; i++) {
if (map.has(arr[i])) {
sumScore += map.get(arr[i]);
} else {
res = "Unknown"
break
}
}
res = res == "Unknown" ? "Unknown" : (sumScore / arr.length).toFixed(2)
console.log(res)
});
}
processInput();
#include <stdio.h>
#include <string.h>
int main() {
char s[100];
while (fgets(s, sizeof(s), stdin)) { // 接受一整行字符串
float sum = 0;
int count = 0;
int flag = 1;
for (int i = 0; i < strlen(s); i++) {
if (s[i] == 'A') { sum += 4; count++; }
else if (s[i] == 'B') { sum += 3; count++; }
else if (s[i] == 'C') { sum += 2; count++; }
else if (s[i] == 'D') { sum += 1; count++; }
else if (s[i] == 'F') { sum += 0; count++; }
else if (s[i] == ' ' || s[i] == '\n') continue;
else {
flag = 0;
printf("Unknown\n");
break;
}
}
if (flag) printf("%.2f\n", sum / count);
}
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。