Student Having Problem With Reference Parameters

This is a discussion on Student Having Problem With Reference Parameters within the C Programming forums, part of the General Programming Boards category; Alright, so... I've got a program that needs to find the mean and standard deviation of a number of scores ...

  1. #1
    Registered User
    Join Date
    Jan 2005
    Posts
    28

    Student Having Problem With Reference Parameters

    Alright, so... I've got a program that needs to find the mean and standard deviation of a number of scores that are inputted by the user.

    Of course, for this assignment, I need to use arrays and reference parameters... I also need to use a bubble sorting method to sort the scores into decending order.

    I have the bubble sorting and the arrays taken care of-- I'm just having problems with the reference parameters.

    In a number of unncessesary functions, I have this:

    Code:
    #include <stdio.h>
    #include <math.h>
    
    void inputData(int list[], int* n),
    bubbleSort(int list[], int n),
    statistics(int list[], int n, double* mean, double* stdv),
    display(int scores[], char grades[], int n, double mean, double stdv); 
    char letterGrade(int score, double mean, double stdv);
    
    
    #define max_class_size 40
    
    int main()
    {
        int list[max_class_size], classSize, exit, i;
        double mean, stdv; 
        
        printf("How many scores?> ");
        scanf("%d", &classSize);
        
        printf("Enter scores>");
        inputData(list, &classSize);
        bubbleSort(list, classSize);
        statistics(list, classSize, &mean, &stdv);
           
          
      
        for(i=0 ; i < classSize ; i++)
        {
                printf("%d\n", list[i]);
         }
         
         
         
         printf("Exit program? (y/n)> ");
         scanf("%d", &exit);
         
    
    
    
            
    }
    
    
    void inputData(int list[], int *n)
    {
         int i;
         
         for(i=0 ; i < *n ; i++)
             scanf("%d", &list[i]);
    
              
     }
     
    void bubbleSort(int list[], int n)
    {
         int a, b, i;
         
         for(i=0 ; i < n-1 ; i++)
             {
                 for(a = 0 ; a < n-i-1 ; a++)
                 {
                       if(list[a] < list[a+1])
                       {
                                  b = list[a];
                                  list[a] = list[a+1];
                                  list[a+1] = b;
                       }
                       
                 }
             }
    
     }
    
    void statistics(int list[], int n, double* mean, double* stdv)
    {
         int sum, sum_sqr, i;
         
         for(i=0 ; i < n ; i++)
         {
                 sum += list[i];
                 sum_sqr += list[i] * list[i];
         }
                 
         *mean = sum / n;
         *stdv = sqrt(sum_sqr / n - *mean * *mean);
         
    }
    
    
    char letterGrade(int score, double mean, double stdv)
    {
         
         
    
     }
     
    void display(int scores[], char grades[], int n, double mean, double stdv)
    {  
    }

    I know, the last two funtions at the end, I haven't filled in. Those are to be eventually filled in.

    I'm having no problem with the *n reference parameter in the inputData function. That's working just fine. However, in the statistics function, I'm not getting what I want when I try to print mean and stdv.

    When I try to print mean and stdv, this is what I input, before the for loop to print the scores in decending order, but after I call on the statistics function:

    Code:
        printf("\n\nmean: %.2f\nstdv: %.2f\n\n", mean, stdv);
    When i use the & symbol infront of mean and stdv in the printf, I get values of 0 for whatever I input.

    However, if I input 3 numbers, say; 98 88 77
    I get this output:

    mean: 66974062.00
    stdv: -1.#J

    ...And that certainly isn't correct.


    What did I do wrong?



    Thanks!

  2. #2
    Registered User
    Join Date
    Jan 2005
    Posts
    28
    Okay, I just figured out why I was getting such ridiuclous values for the mean and standard deviation.

    I needed to set sum and sum_sqr to 0, initially. That fixed everything. ...Now on to new problems.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 4
    Last Post: 05-13-2011, 09:28 AM
  2. Using Vectors. MinGW warning
    By Viewer in forum C++ Programming
    Replies: 9
    Last Post: 03-26-2009, 04:15 PM
  3. Screwy Linker Error - VC2005
    By Tonto in forum C++ Programming
    Replies: 5
    Last Post: 06-19-2007, 03:39 PM
  4. command line parameters problem...
    By ac251404 in forum C++ Programming
    Replies: 2
    Last Post: 08-23-2006, 01:44 PM
  5. reference parameters
    By LowLife in forum C Programming
    Replies: 8
    Last Post: 01-25-2006, 11:50 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21