0

課題:あなたのいとこが通っている学校はクッキーを販売しています。あなたのいとこのクラスが他のどのクラスよりも多くのクッキーを売っている場合、先生はクラス全体をピクニックに連れて行くと約束しました。もちろん、あなたのいとこはあなたにすべての売り上げを追跡し、勝者を決定するように志願しました。

各クラスは、教師の名前で識別されます。各販売伝票には、教師の名前と販売された箱の数が記載されています。2つの並列配列を作成することにしました。1つは教師の名前を保持し、もう1つは販売されたボックスの数を記録します。データのサンプルは次のとおりです。

最初の数字はクラスの数を示し、次に教師の名前の後に販売されたボックスの数が続きます15 Smith 3 Courtney ...など


私の主な問題(「将来」のために複製できるため) parrallel array)は、販売されたボックスの配列に保存するために1行おきに取得しているため、配列「boxSold」は

[1] 15
[2]3のようになります。

    package assignment5Package;

    import java.util.Scanner;

    import java.io.*;



    public class assignment5Demo 
    {

        /**
         * @param args
         * @throws IOException 
         */
        public static void main(String[] args) throws IOException 
        {
            // TODO Auto-generated method stub
            //create arrays, variables
            Scanner keyboard = new Scanner(System.in);
            BufferedReader input = new BufferedReader
                (new FileReader ("/Users/lee/Desktop/class/cs 113/Assignment5/cookies.txt"));

            System.out.println("How many sale slips are there");

            int numSaleSlips = keyboard.nextInt();
            int[] soldBox = new int[numSaleSlips];
            //______String[] teacherName = new String[numSaleSlips];
            int soldBoxIndex;
            int teacherNameIndex;
            //String soldBoxString; (line 50)




            //initializing both strings to 0 and "_"
            for (soldBoxIndex = 0; soldBoxIndex < numSaleSlips; soldBoxIndex++)
            {
                soldBox[soldBoxIndex] = 0;
            }

            //**for (teacherNameIndex = 0; teacherNameIndex < numSaleSlips; teacherNameIndex++)
            //**{
            //**    teacherName[teacherNameIndex] = "_";
            //**}

            //reading from the cookies.txt file
            for (soldBoxIndex = 0; soldBoxIndex < numSaleSlips; soldBoxIndex++)
            {
                if (soldBoxIndex % 2 != 0
                {
                    String soldBoxString;


                    soldBoxString = input.readLine(); //reads in value and assigns/re-assigns
                    soldBox[numSaleSlips] = (int) Double.parseDouble(soldBoxString); //type-casted to fit variable type, converts to double, stores in array
                    System.out.println(soldBox[soldBoxIndex]);
                }
                else 
                {
                    System.out.println("Error at " + soldBoxIndex +".");
                }

            }       
}
4

1 に答える 1

0

以下は手っ取り早い解決策かもしれませんが、仕事は終わります:

for (soldBoxIndex = 0; soldBoxIndex < numSaleSlips; soldBoxIndex++)
{
    if (soldBoxIndex % 2 != 0
    {
        String soldBoxString;


        soldBoxString = input.readLine(); //reads in value and assigns/re-assigns
        soldBox[numSaleSlips] = (int) Double.parseDouble(soldBoxString); //type-casted to fit variable type, converts to double, stores in array
        System.out.println(soldBox[soldBoxIndex]);
    }
    else 
    {
        input.readLine(); //read the following line, but ignore its content, effectivly skipping the line
    }

}

スキップされた行に対応するために、forループの数を少し調整する必要がある場合もあります。

于 2012-11-28T08:43:02.650 に答える