2017-03-11 6 views
-2

数字の入力が無限になり、数字の入力が完了して が終了した後に、次の 最大番号を画面に出力するプログラムを作成するにはどうすればいいですか?2番目に大きい数字

プログラムとユーザーとの対話の例を以下に示します。

Please enter a positive number (type -1 to exit): 99 
Please enter a positive number (type -1 to exit): 66 
Please enter a positive number (type -1 to exit): 5 
Please enter a positive number (type -1 to exit): 23 
Please enter a positive number (type -1 to exit): 46 
Please enter a positive number (type -1 to exit): 326 
Please enter a positive number (type -1 to exit): 661 
Please enter a positive number (type -1 to exit): -3 
The second largest number entered is: 661 
+2

661が2番目に大きい場合、最大のものは何ですか? –

+0

入力をリストに保存し、リストをソートして2番目のコードを返します – abccd

+3

あなたの宿題を手伝ってくれてうれしいですが、自分でスタートしてコードを投稿して、どこにいらっしゃるのかを明確に説明する必要があります。 –

答えて

1

これはPython2.xの例です、あなたはのpython3を使用している場合inputを使用しようとするのではなくraw_input .MYの方法がにあります文字列として入力し、try/catchを使用して整数に変換し、リストに格納します。

maxメソッドを使用すると、最大値を取得して削除することができます。そのため、次にmaxを使用すると2番目に大きな数値が得られます。

input_list=[] 
while True: 
    string=raw_input("Please enter a positive number (type -1 to exit)") 
    try: 
     num=int(string.strip()) 
     if num!=-1: 
      input_list.append(num) 
     else: 
      largest=max(input_list) 
      input_list.remove(largest) 
      print "The largest value is {0}".format(largest) 
      sec_largest=max(input_list) 
      input_list.remove(sec_largest) 
      print "The second largest value is {0}".format(sec_largest) 
      break 
    except Exception as e: 
     print "can not convert string to int" 

また、リストのサイズがそれほど大きくなければソートすることもできます。それ以外の場合は、時間がかかる可能性があります。

もう1つの方法として、2番目に大きな数字だけを入力したい場合は、入力を最後の入力番号と比較することができます。

これが役に立ちます。

+2

私たちは本当に人々の宿題をダンプするだけで大​​丈夫ですか?このような?私は、割り当てを試みたり、試行されたコードを私たちに提供しなくても、問題を解決した人には、これがどのように学習の練習であるのか分かりません。彼らの問題を解決するためにあなたにはうってつけですが、これを助けるよりむしろ、長期的にはそれを傷つけています。あなたを引用すると、 "もっと痛いのは何ですか、苦労の痛み、または後悔の痛みですか?"彼らはどんな勤勉の痛みも学ばず、学習しないことを後悔します。 – davedwards

+0

@downshiftあなたは絶対に正しいです、だからコーディングサービスではありません、私たちは常にdownvoteとコメントを残して、私はこれが最良の方法ではないことを知っている、私たちは自分自身をコード化しようとOPにしたいので、解説、コードなしの2つの方法があります。参考になるかもしれません。OPによって異なります。 – McGrady

+3

私はdownvoteの原則に加入していませんが、私は誰かの良い意思をdownvoteしたい人にそれを残して、代わりに私はちょうど努力のOPの暴力的な欠如に注意したいと思った。そうでなければ、心配はありません。乾杯。 – davedwards

関連する問題