首页 > 解决方案 > python中的平均局数

问题描述

我在 c++ 中尝试了这个程序的代码,它成功地完成了所有的测试用例。但在 python 语言中,它显示相同逻辑的值错误。如何解决这个问题?[1]:https ://i.stack.imgur.com/vVLmv.jpg 我的代码:

def avg(s,n):
  sum1=0
  sum2=0
  for i in range(0,n):
      for j in range(0,2):
          if j%2==0:
             sum1+=s[i][j]
          else:
             sum2+=s[i][j]
  print((float)(sum1/n))
  print((float)(sum2/n))
n=int(input())
c=2
s=[[0 for j in range(0,c)]for i in range(0,n)]
for i in range(0,n):
    for j in range(0,c):
        s[i][j]=int(input())
avg(s,n)

标签: pythonpython-3.x

解决方案


你接受输入的方式是错误的

当你这样做时,s[i][j]=int(input())你正在将两个空格分隔的 int 转换为一个 int

def avg(s,n):
  sum1=0
  sum2=0
  for i in range(0,n):
      for j in range(0,2):
          if j%2==0:
             sum1+=s[i][j]
          else:
             sum2+=s[i][j]
  print((float)(sum1/n))
  print((float)(sum2/n))
n=int(input())
c=2
# I am going to ask for user input n times, split the input every time and convert individual score to int 
s=[list(map(int, input().split())) for _ in range(n)]
avg(s,n)
2
100 200
200 300
150.0
250.0

推荐阅读