-1

ループの出口として 0 を使用しながら、ユーザーがこれらすべての入力数値の平均を見つける方法を理解する必要があります。

平均の一部として 0 を使用して排除する方法を理解する必要があります。例: 5, 0, 5 ,5... 0 を除いた平均は 5 です。

nA = 1
nSum = 0
print ('enter numbers to find the average')
print ('enter 0 to quit.')
while nA !=0:
    nA = input ('gemmi a number:')
    nSum+=nA
   dAvg = nSum

print 'the total amount of numbers is' , nSum ,
print 'your average is' , dAvg , 

どうすればいいですか?

4

3 に答える 3

1

ユーザーが入力した数字の数を示すカウンターを保持する必要があるように思われるので、それで割って平均を取得できます(最後の0をカウントしないように注意してください)。余談ですが5,0,5,5、最初の 0 でループが壊れ、残りの 2 つの 5 が入力される機会がないため、ユーザーはここに入れることはできません。

于 2012-09-22T01:27:30.827 に答える
0

平均を行う方法は、すべての数値と「項目数」の「合計」を追跡し、完了したら 2 つを割ることです。

だから、このようなもの:

nCount = 0
nSum = 0
nA = 1
print ('enter numbers to find the average')
print ('enter 0 to quit.')
while nA != 0:
    nA = input ('gemmi a number:')
    if nA != 0:
      nCount = nCount + 1
      nSum = nSum + nA

dAvg = nSum / nCount
print 'the total amount of numbers is' , nCount
print 'your average is' , dAvg
于 2012-09-22T01:30:37.510 に答える
0

何をしたいのかはっきりしていません: ループを終了する条件として 0 を使用しますか? それとも、すべてのゼロをスキップしますか?

最初のケース(質問のタイトルから理解できます)の場合、次のようなことができます:

total = 0
nums = 0
readnum = None
print("Enter numbers to find the average. Input 0 to exit.")

while readnum != 0:
    readnum = int(raw_input('>'))
    total = total + readnum
    if readnum != 0:
      nums = nums + 1

print 'total amount of numbers is %d' % (nums)
print 'avg is %f' % (float(total)/nums)

除算で が必要です。floatそれ以外の場合、除算は整数部分のみを使用して行われます (たとえば、1、3、4 の平均は 2.66667 ではなく 2 になります)。

2 番目のケースに適応するのに十分なほど単純である必要があります。

于 2012-09-22T01:35:27.147 に答える