0

私は理解できない問題を抱えているので、私はいくつかの助けのために私のコードを投稿しています。私はこれの初心者であり、do-whileループについて説明したばかりなので、残念です。:)割り当ては、最小と最大を格納し、エントリの数を取得し、-99のエントリで終了する整数エントリプログラムを作成することでした。いくつかの整数を入力すると、カウントが間違っているのに対し、他の整数は正しいことがわかりました。データ:15、30、25、20...は「2つの数字を入力しました」と表示されます。他のエントリは正しく表示されます。何が足りないのか教えていただければ幸いです。

import java.util.Scanner;

public class LargestSmallest {
public static void main(String[] args)
{
    int entry, smaller=0, larger=0,count=0;
    boolean again=true;
    Scanner input = new Scanner(System.in);   

    do
    {System.out.print("Enter your integer: ");
        entry = input.nextInt();

        if (count==0 && entry !=-99)
        {
          larger = entry;
          smaller = entry;
          count +=1;
        }
        else 
        {             

          if (entry < smaller && entry!=-99 )
          {
              smaller = entry;
              count+=1;
          }
          else if (entry > larger && entry !=-99)
          {
              larger = entry;
              count+=1;
          }  
        }

           if (entry == -99)
           again = false;
     }
    while (again);

   if (count >1)
   {
    System.out.println("You entered "+count+" numbers.");
    System.out.println("Your smallest number is: "+ smaller);
    System.out.println("Your largest number is: "+larger);
   }
}

}

4

2 に答える 2

1

count小さい数または大きい数が更新される場合にのみ増分します。count += 1;ifステートメントを取り出して、常に実行する必要があります。

于 2013-03-06T02:08:18.120 に答える
0

条件が満たされた場合にのみカウントをインクリメントしているため、既存の最小値よりも小さいエントリまたは既存の最大値よりも大きいエントリを取得しない場合、カウント値は正しくありません。

次のように変更する必要があります。

 else 
            {             

              if (entry < smaller && entry!=-99 )
              {
                  smaller = entry;

              }
              else if (entry > larger && entry !=-99)
              {
                  larger = entry;

              }
              count+=1;

            }

               if (entry == -99) {
               again = false;
               count --;
               }

カウントがインクリメントされた後にのみ -99 条件をチェックしているため、ユーザーが -99 を入力した場合、カウンターを 1 減らす必要があります。

于 2013-03-06T02:14:15.730 に答える