Thread: Not returning correct results

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User drty2's Avatar
    Join Date
    Jan 2009
    Location
    New Zealand
    Posts
    15
    All my calculations are coming up under the Female columns. They're in the correct age and lead type, but all the males are being calculated as females! What am I doing wrong?

    Code:
    #include <stdio.h>
    #define MAXRECORDS 4
    
    struct record
    {
       char gender;
       int age;
       int lead;
    };
    
    void read_file(struct record rec[]);
    void calculations(int c[], struct record rec[]);
    void print_report(int c[], struct record rec[]);
    
    int main()
    {
       int c[36] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
       struct record rec[MAXRECORDS];
       read_file(rec);
       calculations(c, rec);
       print_report(c, rec);
    }
    
    void read_file(struct record rec[])
    {
       FILE *fpin;
       int i;
    
       fpin = fopen("custsurvey.dat", "r");
    
       if(fpin == NULL)
       {
          printf("Error opening file");
       }
       else
       {
          for(i = 0; i < MAXRECORDS; i++)
             fscanf(fpin, " %c  %d %d", &rec[i].gender, &rec[i].age, &rec[i].lead);
       }
    
       fclose(fpin);
    
       return;
    }
    
    void calculations(int c[], struct record rec[])
    {
       int i = 0;
    
       while(i < MAXRECORDS)
       {
          if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 1))
          {
             c[0]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 1))
          {
             c[1]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 1))
          {
             c[2]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 2))
          {
             c[3]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 2))
          {
             c[4]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 2))
          {
             c[5]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 3))
          {
             c[6]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 3))
          {
             c[7]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 3))
          {
             c[8]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 4))
          {
             c[9]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 4))
          {
             c[10]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 4))
          {
             c[11]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 5))
          {
             c[12]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 5))
          {
             c[13]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 5))
          {
             c[14]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age < 25) && (rec[i].lead == 6))
          {
             c[15]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 6))
          {
             c[16]++;
             i++;
          }
          else if((rec[i].gender = 'F') && (rec[i].age > 40) && (rec[i].lead == 6))
          {
             c[17]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 1))
          {
             c[18]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 1))
          {
             c[19]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 1))
          {
             c[20]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 2))
          {
             c[21]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 2))
          {
             c[22]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 2))
          {
             c[23]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 3))
          {
             c[24]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 3))
          {
             c[25]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 3))
          {
             c[26]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 4))
          {
             c[27]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 4))
          {
             c[28]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 4))
          {
             c[29]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 5))
          {
             c[30]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 5))
          {
             c[31]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 5))
          {
             c[32]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age < 25) && (rec[i].lead == 6))
          {
             c[33]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age >= 25) && (rec[i].age <= 40) && (rec[i].lead == 6))
          {
             c[34]++;
             i++;
          }
          else if((rec[i].gender = 'M') && (rec[i].age > 40) && (rec[i].lead == 6))
          {
             c[35]++;
             i++;
          }
       }
    
       return;
    }
    void print_report(int c[], struct record rec[])
    {
       FILE *fpout;
    
       fpout = fopen("surveyreport.txt", "w");
    
       if(fpout == NULL)
       {
          printf("Error opening file");
       }
       else
       {
          fputs("                            CUSTOMER SURVEY REPORT\n", fpout);
          fputs("                            ======================\n", fpout);
          fputs("                      FEMALES                   MALES\n", fpout);
          fputs("              =======================  =======================\n", fpout);
          fputs("              younger  range   older   younger  range   older\n", fpout);
          fputs("              than 25 25 - 40 than 40  than 25 25 - 40 than 40\n", fpout);
          fputs("    LEAD TYPE =======================  ======================= TOTAL\n", fpout);
          fputs("    =========                                                  =====\n\n", fpout);
          fprintf(fpout,"       REPEAT   %3d     %3d     %3d      %3d     %3d     %3d\n\n", c[0], c[1], c[2], c[18], c[19], c[20]);
          fprintf(fpout,"TELEVISION AD   %3d     %3d     %3d      %3d     %3d     %3d\n\n", c[3], c[4], c[5], c[21], c[22], c[23]);
          fprintf(fpout," NEWSPAPER AD   %3d     %3d     %3d      %3d     %3d     %3d\n\n", c[6], c[7], c[8], c[24], c[25], c[26]);
          fprintf(fpout,"     RADIO AD   %3d     %3d     %3d      %3d     %3d     %3d\n\n", c[9], c[10], c[11], c[27], c[28], c[29]);
          fprintf(fpout,"WORD OF MOUTH   %3d     %3d     %3d      %3d     %3d     %3d\n\n", c[12], c[13], c[14], c[30], c[31], c[32]);
          fprintf(fpout,"        OTHER   %3d     %3d     %3d      %3d     %3d     %3d\n\n", c[15], c[16], c[17], c[33], c[34], c[35]);
       }
    }
    Last edited by drty2; 01-18-2009 at 07:48 PM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Linux for GNU/Linux is not correct?
    By password636 in forum Linux Programming
    Replies: 8
    Last Post: 03-31-2009, 08:30 PM
  2. Help with struct... not returning correct results.
    By drty2 in forum C Programming
    Replies: 7
    Last Post: 01-18-2009, 11:25 PM
  3. Replies: 3
    Last Post: 08-13-2008, 01:34 PM
  4. Incorrect results from fmod()?
    By karlthetruth in forum C Programming
    Replies: 4
    Last Post: 04-11-2008, 09:12 AM
  5. 72hour GDC Results
    By jverkoey in forum A Brief History of Cprogramming.com
    Replies: 3
    Last Post: 07-05-2004, 11:46 PM