测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A35678. 钢筋问题统计三角形数量及钢筋总长度。 某工程需要很多由钢筋组成的三角形, 在文本文件“data.txt”中每一行的三个数字分别表示三根钢筋的长度(整数, 单位: 厘米, 数字间用空格隔开) ,若这三根钢筋能组成三角形, 要求统计并输出三角形数量以及这些钢筋材料的总长度(若不能组成三角形则不对这些数据进行统计) , 文本文件数据如图 a 所示, 程序运行界面如图 b所示。完成该任务的思路是: 首先…

填空题 困难

题目描述

钢筋问题

统计三角形数量及钢筋总长度。 某工程需要很多由钢筋组成的三角形, 在文本文件“data.txt”中每一行的三个数字分别表示三根钢筋的长度(整数, 单位: 厘米, 数字间用空格隔开) ,若这三根钢筋能组成三角形, 要求统计并输出三角形数量以及这些钢筋材料的总长度(若不能组成三角形则不对这些数据进行统计) , 文本文件数据如图 a 所示, 程序运行界面如图 b所示。

完成该任务的思路是: 首先从文本文件“data.txt” 读取文本内容到变量 line, 提取边长数据后, 统计数据并输出结果。

相关代码如下, 请补全代码:

def readfile(filename):

        f = open(filename,encoding = "utf-8")

        m=[]; n=[]; k=[]

        line = f.readline()

        while line:

                x=line.strip().split(" ")

                m.append(int(x[0]))

                n.append(int(x[1]))

                k.append(int(x[2]))

                ______① ______

        f.close()

        return m,n,k

def triangle(x,y,z): # 判断数据 x、 y、 z 能否组成三角形

        flag=False

        if  ______② ______ :

                flag=True

        return flag

a,b,c=readfile("/data/  ______③ ______ ") #读入文件

n=len(a);count=0;sum=0

print("能组成三角形的数据有:")

for i in range(n):

        if  ______④ ______ :

                sum+=a[i]+b[i]+c[i]

                print(a[i],b[i],c[i])

                count+=1

print("能组成三角形的共有:",count,"组")

print("共需要材料长度共是:",sum)

参考答案

def readfile(filename): f = open(filename,encoding = "utf-8") m=[]; n=[]; k=[] line = f.readline() while line: x=line.strip().split(" ") m.append(int(x[0])) n.append(int(x[1])) k.append(int(x[2])) line = f.readline() f.close() return m,n,k def triangle(x,y,z): # 判断数据 x、 y、 z 能否组成三角形 flag=False if x+y>z and x+z>y and y+z>x: flag=True return flag a,b,c=readfile("/data/data.txt") #读入文件 n=len(a);count=0;sum=0 print("能组成三角形的数据有:") for i in range(n): if triangle(a[i],b[i],c[i]): sum+=a[i]+b[i]+c[i] print(a[i],b[i],c[i]) count+=1 print("能组成三角形的共有:",count,"组") print("共需要材料长度共是:",sum)

答案解析

评分标准:

(1) line = f.readline(); (3 分)

(2) x+y>z and x+z>y and y+z>x; (2 分)

(3) data.txt; (2 分)

(4) triangle(a[i],b[i],c[i])。 (3 分)

上一题 下一题