首页 > 试题广场 >

学生基本信息输入输出

[编程题]学生基本信息输入输出
  • 热度指数:206161 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩(注:输出成绩时需进行四舍五入且保留2位小数)。

数据范围:学号满足 ,各科成绩使用百分制,且不可能出现负数

输入描述:
学号以及3科成绩,学号和成绩之间用英文分号隔开,成绩之间用英文逗号隔开。


输出描述:
学号,3科成绩,输出格式详见输出样例。
示例1

输入

17140216;80.845,90.55,100.00

输出

The each subject score of No. 17140216 is 80.85, 90.55, 100.00.
示例2

输入

123456;93.33,99.99,81.20

输出

The each subject score of No. 123456 is 93.33, 99.99, 81.20.
str = input().split(";")

No  = int(str[0])

score = str[1].split(",")
s1 = float(score[0])
s2 = float(score[1])
s3 = float(score[2])

print("The each subject score of  No. %d is %.3f, %.2f, %.2f."%(No, s1, s2, s3))
发表于 2021-03-13 11:36:59 回复(0)
 
st = input().replace(';',',').split(',')  
for i in range(1,4): 
    st[i]= round(eval(st[i])+0.001,2)#解决round四舍六入,五留双的问题 
print('The each subject score of No. {0} is {1:.2f}, {2:.2f}, {3:.2f}.'.format(st[0],st[1],st[2],st[3]))
编辑于 2021-02-22 18:56:19 回复(0)
from decimal import Decimal, ROUND_HALF_UP
n = input()
id=n.split(';')[0]
c=n.split(';')[1].split(',')[0]
m=float(n.split(';')[1].split(',')[1])
e=float(n.split(';')[1].split(',')[2])
c1= Decimal(c).quantize(Decimal('0.00'),rounding=ROUND_HALF_UP)
m1='%.2f' % m
e1='%.2f' % e
print('The each subject score of  No. {0} is {1}, {2}, {3}.'.format(id,c1,m1,e1))

四舍五入用decimal模块,可解决round的弊端

发表于 2020-11-18 16:16:41 回复(1)
x,c = input().split(';')
d,m,e = map(float,c.split(",")) print('The each subject score of  No. %s is %.2f, %.2f, %.2f.' %(x,d+0.001,m,e))
发表于 2020-11-16 13:29:28 回复(0)
a = input()
stud_id = a.split(';')[0]
grade = a.split(';')[1]
grade_r = grade.split(',')
print('The each subject score of No. {0} is {1}, {2}, {3}.'.format(stud_id, round(float(grade_r[0]),2),grade_r[1], grade_r[2] ))
大佬们,我这个问题出在第一个学生的成绩是80.84不是80.85,想问下怎么解决啊。
PS:我刚查了下是round的问题,round好像不能四舍五入。。。。
编辑于 2020-11-11 20:08:36 回复(0)
a = input()
list1 = a.split(';')
list2 = list1[1].split(',')
print('The each subject score of No. {} is {}, {}, {}.'.format(list1[0], list2[0], list2[1], list2[2]))

发表于 2020-08-30 21:05:18 回复(2)
a=input()
b=a.replace(";",",")
c,d,e,f=b.split(",")
print("The each subject score of  No. {0} is {1:.2f}, {2:.2f}, {3:.2f}.".format(c,eval(d)+0.002,eval(e),eval(f)))
发表于 2020-04-28 15:39:59 回复(0)
a,b=input().split(';')
x1,x2,x3=map(float,(b.split(',')))
x1=('%.2f' %round(x1+0.0001,2))
x2=('%.2f' %round(x2+0.0001,2))
x3=('%.2f' %round(x3+0.0001,2))
print('The each subject score of  No. %s is %s, %s, %s.' %(a,x1,x2,x3))

round()如果只有一个数作为参数,不指定位数的时候,返回的是一个整数,而且是最靠近的整数
一般情况是使用四舍五入的规则,但是碰到舍入的后一位为5的情况,如果要取舍的位数前的数是偶数,则直接舍弃,如果奇数这向上取舍。答案中明显没参考此类规则
发表于 2020-04-22 10:38:05 回复(0)