Number Averager

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Kid Programmer
    New Member
    • Mar 2008
    • 176

    Number Averager

    Hello guys. I was trying to write a number averaging program that would continue averaging numbers until the user enters text. Here is my source:
    Code:
    /* Number Avergaer
    Written by Kid Programmer
    Coded in Java */
    
    import java.util.Scanner;	//import a scanner
    
    class NumberAverager {		//create a class
    	public static void main(String[] args) {	//define the main function
    		int average = 0;
    		System.out.println("This program will average numbers.");
    		System.out.println("To stop averaging numbers type in text.");
    		Scanner scan = new Scanner(System.in);  
    		while ( scan.hasNextInt() ){
    			int  number = scan.nextint("Please enter a number: ");
    		 	int total_average = (average + number) / 3;
    			System.out.println("The average is: " + total_average);
    		}
    	}
    }
    I get the following error:

    NumberAverager. java:14: cannot find symbol
    symbol : method nextint(java.la ng.String)
    location: class java.util.Scann er
    int number = scan.nextint("P lease enter a number: ");
    ^
    1 error

    What should I do?
  • r035198x
    MVP
    • Sep 2006
    • 13225

    #2
    Java is case sensitive. nextint != nextInt

    Comment

    • sukatoa
      Contributor
      • Nov 2007
      • 539

      #3
      also nextInt() method with a parameter String have never been exists....

      maybe int....

      regards,
      sukatoa

      Comment

      • Kid Programmer
        New Member
        • Mar 2008
        • 176

        #4
        I fixed the problem. But I have another. There apparently is a problem with my math. Please fix it. Here is my source:
        Code:
        /* Number Avergaer
        Written by Kid Programmer
        Coded in Java */
        
        import java.util.Scanner;	//import a scanner
        
        class NumberAverager {		//create a class
        	public static void main(String[] args) {	//define the main function
        		int average = 0;
        		System.out.println("This program will average numbers.");	//explain the program
        		System.out.println("To stop averaging numbers type in text.");
        		Scanner scan = new Scanner( System.in );	//create a scanner
        		while ( scan.hasNextInt() ){	
        			int  number = scan.nextInt();		//prompt the user for a number
        			int average2 = (average + number);	//calculate part of the average
        			if ( scan.hasNextInt() == false ) {	
        				int total_average = average2 / 3;	//calculate the average
        				System.out.println("The average is: " + total_average);		//print out the average
        			}
        		}
        	}
        }
        I type in the numbers 1, 3, and 5 and it says the average is 1.

        Comment

        • r035198x
          MVP
          • Sep 2006
          • 13225

          #5
          1.) Don't use int if you need to do divisions. What if the result has a decimal part?
          2.) Write down your pseudo-code algorithm for solving this problem first.

          Comment

          • JosAH
            Recognized Expert MVP
            • Mar 2007
            • 11453

            #6
            The title of this thread sounded promising: a number averager; I would've expected
            something like this:

            [code=java]
            NumberAverager na= new NumberAverager( );
            na.add(<some_nu mber>): // do this several times
            System.out.prin tln("total: "+na.getTotal() );
            System.out.prin tln("average: "+na.getAverage ());
            System.out.prin tln("n: "+na.getN() );
            [/code]

            ... but alas, a same old rigid fortranesque implementation was shown again.
            I knew it for years: those Basic programmers are all lost for the posterity.

            kind regards,

            Jos

            Comment

            • Kid Programmer
              New Member
              • Mar 2008
              • 176

              #7
              Well I tried fixing my problem and I got this error:

              NumberAverager. java:21: cannot find symbol
              symbol : variable number_sum
              location: class NumberAverager
              int total_average = number_sum / divide_by; //calculate the average
              ^
              1 error


              This is my new source:
              Code:
              /* Number Avergaer
              Written by Kid Programmer
              Coded in Java */
              
              import java.util.Scanner;	//import a scanner
              
              class NumberAverager {		//create a class
              	public static void main(String[] args) {	//define the main function
              		int average = 0;
              		int divide_by = 0;
              		System.out.println("This program will average numbers.");	//explain the program
              		System.out.println("To stop averaging numbers type in text.");
              		Scanner scan = new Scanner( System.in );	//create a scanner
              		while ( scan.hasNextInt() ){			//ask the user to enter numbers until they enter text
              			int number = scan.nextInt();		//prompt the user for a number
              			divide_by ++;				//increase the number to divide the sum by
              			while ( scan.hasNextInt() == true )  {       //while the user is still entering numbers 
              				double number_sum = number + 0;
              			}
              			if ( scan.hasNextInt() == false ) {	//if the user entered text
              			        int total_average = number_sum / divide_by; 	//calculate the average
              				System.out.println("The average is: " + total_average);		//print out the average
              			}
              		}
              	}
              }
              How can I fix this?

              Sincerely,
              Kid Programmer

              Comment

              • Laharl
                Recognized Expert Contributor
                • Sep 2007
                • 849

                #8
                Code:
                			while ( scan.hasNextInt() == true )  {
                				double number_sum = number + 0;
                			}
                			if ( scan.hasNextInt() == false ) {
                			        int total_average = number_sum / divide_by;
                How can I fix this?

                number_sum does not exist outside of the pair of curly braces in which it is first declared. The same is true for any other primitive (int, double, boolean, char, float, byte). Also, in your current code, if the declaration for number_sum were moved appropriately, number_sum would still always equal number.

                Comment

                • Kid Programmer
                  New Member
                  • Mar 2008
                  • 176

                  #9
                  But I don't want number sum to always equal number. I need it to be the sum of all the numbers entered.

                  Comment

                  • sukatoa
                    Contributor
                    • Nov 2007
                    • 539

                    #10
                    Originally posted by Kid Programmer
                    But I don't want number sum to always equal number. I need it to be the sum of all the numbers entered.
                    eg:

                    Code:
                    var = 0;
                         while( allowable ){
                              var += input from user;
                         }
                         showAverage( var / how many times the user inputted );
                    regards,
                    sukatoa

                    Comment

                    Working...