Closed Thread
Results 1 to 4 of 4

Thread: [C] Fuctions compiler error

  1. #1
    Scupham is offline Newbie
    Join Date
    Dec 2008
    Posts
    4
    Rep Power
    0

    Exclamation [C] Fuctions compiler error

    I am getting a compiler error which is preventing me from completing my program.

    If i can get the one error out it should solve all of the others.

    ALL ERRORS ARE IN BOLD SECTION OF CODE

    Errors
    J:\test\test.c(101) : error C2143: syntax error : missing ';' before 'type'
    J:\test\test.c(104) : error C2143: syntax error : missing ';' before 'type'
    J:\test\test.c(111) : error C2065: 'sumx' : undeclared identifier
    J:\test\test.c(111) : warning C4244: '+=' : conversion from 'double ' to 'int ', possible loss of data
    J:\test\test.c(112) : error C2065: 'sumy' : undeclared identifier
    J:\test\test.c(112) : warning C4244: '+=' : conversion from 'double ' to 'int ', possible loss of data
    J:\test\test.c(113) : error C2065: 'sumxx' : undeclared identifier
    J:\test\test.c(113) : warning C4244: '+=' : conversion from 'double ' to 'int ', possible loss of data
    J:\test\test.c(114) : error C2065: 'sumxy' : undeclared identifier
    J:\test\test.c(114) : warning C4244: '+=' : conversion from 'double ' to 'int ', possible loss of data
    J:\test\test.c(116) : error C2065: 'n' : undeclared identifier
    J:\test\test.c(120) : error C2065: 'line_parameters_ptr' : undeclared identifier
    J:\test\test.c(120) : error C2223: left of '->gradient' must point to struct/union
    J:\test\test.c(121) : error C2223: left of '->constant' must point to struct/union
    Error executing cl.exe.

    test.obj - 10 error(s), 4 warning(s)

    Code:
    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>


    struct filenames
    {
    char measurements_filename[101] ;
    char line_parameters_filename[101];
    };

    struct measurements
    {
    double x,y;
    struct measurements *next;
    };

    struct line_parameters
    {
    double gradient, constant;
    struct line_parameters *next;
    };



    int main (void)
    {
    struct filenames filenames, *filenames_ptr;
    struct measurements measurements, *measurement_ptr;
    struct line_parameters line_parameters, *line_parameters_ptr;

    void get_filenames(struct filenames *);
    void read_measurments(struct filenames*, struct measurements *);
    void calculate_line_parameters(struct measurements*, struct line_parameters * );
    void write_line_parameters(struct filenames, struct line_parameters );

    filenames_ptr = &filenames;
    measurement_ptr= &measurements;
    line_parameters_ptr= &line_parameters;


    get_filenames(filenames_ptr);
    fprintf(stdout, "%s\n",filenames_ptr->measurements_filename);
    fprintf(stdout, "%s\n",filenames_ptr->line_parameters_filename);

    read_measurments(filenames_ptr, measurement_ptr);
    calculate_line_parameters(measurement_ptr, line_parameters_ptr);
    write_line_parameters(filenames, line_parameters);
    return(0);
    }




    void get_filenames(struct filenames *filenames_ptr)
    {
    fprintf(stdout, "Enter file name:\n");
    fscanf(stdin, "%s",filenames_ptr->measurements_filename);

    fprintf(stdout, "Enter file name to Save to:\n");
    fscanf(stdin, "%s",filenames_ptr->line_parameters_filename);
    return;
    }




    void read_measurments(struct filenames *filenames_ptr, struct measurements *measurement_ptr)
    {
    char line[101];
    char *line_ptr;
    int no_values=0;
    struct measurements *current_measurements_ptr=measurement_ptr, *new_measurements_ptr;
    FILE *input_stream;
    input_stream=fopen(filenames_ptr->measurements_filename, "r");

    if(input_stream!=NULL)
    {
    fprintf(stdout, "File found!\n");
    fgets(line,sizeof(line), input_stream);

    while (((line_ptr=fgets(line,sizeof(line), input_stream))!=NULL) && ((no_values= sscanf(line,"%lf %lf",
    &current_measurements_ptr->x,
    &current_measurements_ptr->y))==2))
    {
    current_measurements_ptr -> next=(struct measurements*)malloc(sizeof(struct measurements));
    if (measurement_ptr!=NULL)
    {
    current_measurements_ptr=current_measurements_ptr -> next;
    current_measurements_ptr -> next= NULL;
    }

    }
    fclose(input_stream);
    return;
    }




    void calculate_line_parameters(struct measurements *measurement_ptr, struct line_parameters *line_parameters_ptr)
    {
    struct measurements *measurement_ptr=NULL, *current_measurements_ptr;
    double sumx=0, sumy=0, sumxx=0, sumxy=0, n=0;

    current_measurements_ptr = new_measurements_ptr ;

    while(current_measurements_ptr->next != NULL)
    {

    sumx += measurement_ptr->x;
    sumy += measurement_ptr->y;
    sumxx += (measurement_ptr->x) * (measurement_ptr->x);
    sumxy += (measurement_ptr->x) * (measurement_ptr->y);

    n ++;
    current_measurements_ptr = current_measurements_ptr->next;
    }

    line_parameters_ptr->gradient = ((n * sumxy)-(sumx * sumy))/((n * sumxx)-(sumx * sumx));
    line_parameters_ptr->constant = ((sumxy * sumx) - (sumxx * sumy)) / ((sumx * sumx) -(n * sumxx));
    fprintf(stdout, "lol WIN!");
    return;
    }




    void write_line_parameters(struct filenames filenames, struct line_parameters line_parameters)
    {
    FILE *output_stream;
    output_stream = fopen(filenames.line_parameters_filename, "w");

    fprintf(output_stream, "%lf \n", line_parameters.gradient);
    fprintf(output_stream, "%lf \n", line_parameters.constant);

    fclose(output_stream);
    return;
    }
    Thanks for your time

  2. CODECALL Circuit advertisement
    Join Date
    Always
    Posts
    Many

     
  3. #2
    Scupham is offline Newbie
    Join Date
    Dec 2008
    Posts
    4
    Rep Power
    0

    Re: [C] Fuctions compiler error

    Sorry to have bothered you solved that but now running into more problems, will post in due time

  4. #3
    Scupham is offline Newbie
    Join Date
    Dec 2008
    Posts
    4
    Rep Power
    0

    Re: [C] Fuctions compiler error

    Ok new issues.

    I get the program crashing when i run, it seems to crash when im reading data from the file

    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>


    struct filenames
    {
    char measurements_filename[101] ;
    char line_parameters_filename[101];
    };

    struct measurements
    {
    double x,y;
    struct measurements *next;
    };

    struct line_parameters
    {
    double gradient, constant;
    struct line_parameters *next;
    };



    int main (void)
    {
    struct filenames filenames, *filenames_ptr;
    struct measurements measurements, *measurement_ptr;
    struct line_parameters line_parameters, *line_parameters_ptr;

    void get_filenames(struct filenames *);
    void read_measurments(struct filenames*, struct measurements *);
    void calculate_line_parameters(struct measurements*, struct line_parameters * );
    void write_line_parameters(struct filenames, struct line_parameters );

    filenames_ptr = &filenames;
    measurement_ptr= &measurements;
    line_parameters_ptr= &line_parameters;


    get_filenames(filenames_ptr);
    fprintf(stdout, "%s\n",filenames_ptr->measurements_filename);
    fprintf(stdout, "%s\n",filenames_ptr->line_parameters_filename);

    read_measurments(filenames_ptr, measurement_ptr);
    calculate_line_parameters(measurement_ptr, line_parameters_ptr);
    write_line_parameters(filenames, line_parameters);
    return(0);
    }




    void get_filenames(struct filenames *filenames_ptr)
    {
    fprintf(stdout, "Enter file name:\n");
    fscanf(stdin, "%s",filenames_ptr->measurements_filename);

    fprintf(stdout, "Enter file name to Save to:\n");
    fscanf(stdin, "%s",filenames_ptr->line_parameters_filename);
    return;
    }




    void read_measurments(struct filenames *filenames_ptr, struct measurements *measurement_ptr)
    {
    char line[101];
    char *line_ptr;
    int no_values=0;
    struct measurements *current_measurements_ptr=measurement_ptr;
    FILE *input_stream;
    input_stream=fopen(filenames_ptr->measurements_filename, "r");

    if(input_stream!=NULL)
    {
    fprintf(stdout, "File found!\n");
    fgets(line,sizeof(line), input_stream);

    while (((line_ptr=fgets(line,sizeof(line), input_stream))!=NULL) && ((no_values= sscanf(line,"%lf %lf",
    &current_measurements_ptr->x,
    &current_measurements_ptr->y))==2))
    {
    current_measurements_ptr -> next=(struct measurements*)malloc(sizeof(struct measurements));
    if (measurement_ptr!=NULL)
    {
    current_measurements_ptr=current_measurements_ptr -> next;
    current_measurements_ptr -> next= NULL;
    }

    }
    }
    fclose(input_stream);
    return;
    }




    void calculate_line_parameters(struct measurements *measurements, struct line_parameters *line_parameters_ptr)

    {
    struct measurements *measurement_ptr=NULL, *current_measurements_ptr;

    double sumx=0, sumy=0, sumxx=0, sumxy=0, n=0;

    current_measurements_ptr = measurements;

    while(current_measurements_ptr->next != NULL)
    {

    sumx += measurement_ptr->x;
    sumy += measurement_ptr->y;
    sumxx += (measurement_ptr->x) * (measurement_ptr->x);
    sumxy += (measurement_patr->x) * (measurement_ptr->y);

    n ++;
    current_measurements_ptr = current_measurements_ptr->next;
    }

    line_parameters_ptr->gradient = ((n * sumxy)-(sumx * sumy))/((n * sumxx)-(sumx * sumx));
    line_parameters_ptr->constant = ((sumxy * sumx) - (sumxx * sumy)) / ((sumx * sumx) -(n * sumxx));
    fprintf(stdout, "lol WIN");
    return;
    }



    void write_line_parameters(struct filenames filenames, struct line_parameters line_parameters)
    {
    FILE *output_stream;
    output_stream = fopen(filenames.line_parameters_filename, "w");

    fprintf(output_stream, "%lf \n", line_parameters.gradient);
    fprintf(output_stream, "%lf \n", line_parameters.constant);

    fclose(output_stream);
    return;
    }
    Any ideas?

  5. #4
    Join Date
    Jul 2006
    Posts
    16,475
    Blog Entries
    75
    Rep Power
    143

    Re: [C] Fuctions compiler error

    Can you narrow down where it crashes a little? For example, do you see the File Found message?

    Also, I strongly recommend you use indentation to clarify your code like this:
    Code:
    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    
    
    struct filenames
    {
      char measurements_filename[101] ;
      char line_parameters_filename[101];
    };
    
    struct measurements
    {
      double x,y;
      struct measurements *next;
    };
    
    struct line_parameters
    {
      double gradient, constant;
      struct line_parameters *next;
    };
    
    
    
    int main (void)
    {
      struct filenames filenames, *filenames_ptr;
      struct measurements measurements, *measurement_ptr;
      struct line_parameters line_parameters, *line_parameters_ptr;
      
      void get_filenames(struct filenames *);
      void read_measurments(struct filenames*, struct measurements *);
      void calculate_line_parameters(struct measurements*, struct line_parameters * );
      void write_line_parameters(struct filenames, struct line_parameters );
      
      filenames_ptr = &filenames;
      measurement_ptr= &measurements;
      line_parameters_ptr= &line_parameters;
      
      
      get_filenames(filenames_ptr);
      fprintf(stdout, "%s\n",filenames_ptr->measurements_filename);
      fprintf(stdout, "%s\n",filenames_ptr->line_parameters_filename);
      
      read_measurments(filenames_ptr, measurement_ptr);
      calculate_line_parameters(measurement_ptr, line_parameters_ptr);
      write_line_parameters(filenames, line_parameters);
      return(0);
    }
    
    
    
    
    void get_filenames(struct filenames *filenames_ptr)
    {
      fprintf(stdout, "Enter file name:\n");
      fscanf(stdin, "%s",filenames_ptr->measurements_filename);
      
      fprintf(stdout, "Enter file name to Save to:\n");
      fscanf(stdin, "%s",filenames_ptr->line_parameters_filename);
      return;
    }
    
    
    
    
    void read_measurments(struct filenames *filenames_ptr, struct measurements *measurement_ptr)
    {
      char line[101];
      char *line_ptr;
      int no_values=0;
      struct measurements *current_measurements_ptr=measurement_ptr;
      FILE *input_stream;
      input_stream=fopen(filenames_ptr->measurements_filename, "r");
      
      if(input_stream!=NULL)
      {
        fprintf(stdout, "File found!\n");
        fgets(line,sizeof(line), input_stream);
        
        while (((line_ptr=fgets(line,sizeof(line), input_stream))!=NULL) && ((no_values= sscanf(line,"%lf %lf",
        &current_measurements_ptr->x,
        &current_measurements_ptr->y))==2))
        {
          current_measurements_ptr -> next=(struct measurements*)malloc(sizeof(struct measurements));
          if (measurement_ptr!=NULL)
          {
            current_measurements_ptr=current_measurements_ptr -> next;
            current_measurements_ptr -> next= NULL;
          }
        
        }
      }
      fclose(input_stream);
      return;
    }
    
    
    
    
    void calculate_line_parameters(struct measurements *measurements, struct line_parameters *line_parameters_ptr)
    
    {
      struct measurements *measurement_ptr=NULL, *current_measurements_ptr;
      
      double sumx=0, sumy=0, sumxx=0, sumxy=0, n=0;
      
      current_measurements_ptr = measurements;
      
      while(current_measurements_ptr->next != NULL)
      {
      
        sumx += measurement_ptr->x;
        sumy += measurement_ptr->y;
        sumxx += (measurement_ptr->x) * (measurement_ptr->x);
        sumxy += (measurement_patr->x) * (measurement_ptr->y);
        
        n ++;
        current_measurements_ptr = current_measurements_ptr->next;
      }
      
      line_parameters_ptr->gradient = ((n * sumxy)-(sumx * sumy))/((n * sumxx)-(sumx * sumx));
      line_parameters_ptr->constant = ((sumxy * sumx) - (sumxx * sumy)) / ((sumx * sumx) -(n * sumxx));
      fprintf(stdout, "lol WIN");
      return;
    }
    
    
    
    void write_line_parameters(struct filenames filenames, struct line_parameters line_parameters)
    {
      FILE *output_stream;
      output_stream = fopen(filenames.line_parameters_filename, "w");
      
      fprintf(output_stream, "%lf \n", line_parameters.gradient);
      fprintf(output_stream, "%lf \n", line_parameters.constant);
      
      fclose(output_stream);
      return;
    }
    Programming is a branch of mathematics.
    My CodeCall Blog | My Personal Blog

Closed Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Compiler Error
    By Kyle Joseph Klouzal in forum C and C++
    Replies: 4
    Last Post: 07-16-2011, 12:22 PM
  2. Compiler error-please help!
    By Hunter100 in forum C and C++
    Replies: 5
    Last Post: 04-24-2010, 10:12 PM
  3. Compiler Error
    By Hunter100 in forum JavaScript and CSS
    Replies: 4
    Last Post: 03-31-2010, 11:18 AM
  4. Confusion With Compiler Error
    By MichaelNQ in forum C and C++
    Replies: 7
    Last Post: 09-24-2009, 10:48 AM
  5. Odd compiler error
    By Phoenixz in forum C and C++
    Replies: 10
    Last Post: 02-23-2009, 05:47 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts