大佬,帮忙看看代码
题目要求:1.输入的数据比较大小,并求出一个最大整数(四舍五入)
2.整数是几,代表口诀的第几列(不算第一列)。
如果最大整数是4,如下输出
输入
三个浮点数,并排空格隔开三个浮点数,并排空格隔开
输出
输出
9∗9乘法口诀表。输出9∗9乘法口诀表。
注意:第一列是输入是一个空格
样例
输入:
2.1 3.1 4.1
输出:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
代码:
f=map(float,input().split())
z =max(f)
b=int(z)
for i in range(1,b+1):
for j in range(1,i+1):
print('%d*%d=%d\t' %(i,j,i*j),end='')
print()
本帖最后由 myd0313 于 2023-2-14 19:08 编辑
既然你都说了是四舍五入,那么你照做了吗?
问题在这里:
b=int(z)
int 并不是四舍五入,而是取整,取整就是舍掉小数,因此就不能”五入”了
想要正确的四舍五入,应该用 round 函数:
b=int(round(z,0))
后面的0表示保留0位小数,也就是真正的四舍五入
实在不行就自己写一个四舍五入的代码:
f=map(float,input().split())
z =max(f)
b=z
if b-int(b)>=0.5:
b=int(z)+1
else:
b=int(z)
for i in range(1,b+1):
for j in range(1,i+1):
print('%d*%d=%d\t' %(i,j,i*j),end='')
print()
小数部分>0.5就入,否则就舍 myd0313 发表于 2023-2-14 19:06
既然你都说了是四舍五入,那么你照做了吗?
问题在这里:
这个我知道,我想知道的是那个输出的第一列是空格的问题 爱意随风起9306 发表于 2023-2-14 20:16
这个我知道,我想知道的是那个输出的第一列是空格的问题
明白了,加一个空格就好:
f=map(float,input().split())
z =max(f)
b=z
if b-int(b)>=0.5:
b=int(z)+1
else:
b=int(z)
for i in range(1,b+1):
for j in range(1,i+1):
print(' %d*%d=%d\t' %(i,j,i*j),end='')
print()
myd0313 发表于 2023-2-14 20:53
明白了,加一个空格就好:
你这个是竖下来,我要的是横向的空格 round函数是4舍6入,奇进偶舍,按题目+0.5取整比较合理,或者用比较函数。
f=map(float,input().split())
z =max(f)+0.5
b=int(z)
for i in range(1,b+1):
for j in range(1,i+1):
print('%d*%d=%d\t' %(i,j,i*j),end='')
print() Type "help", "copyright", "credits" or "license()" for more information.
print(round(5.5))
6
print(round(4.5))
4
爱意随风起9306 发表于 2023-2-14 21:10
你这个是竖下来,我要的是横向的空格
解释一下什么是横向的空格 myd0313 发表于 2023-2-15 07:21
解释一下什么是横向的空格
已经解决了,就是先输出一个空格,然后在下一行再输出那个乘法表
页:
[1]