+ Reply to Thread
Results 1 to 4 of 4

Thread: [C] Fuctions compiler error

  1. #1
    Newbie Scupham is an unknown quantity at this point
    Join Date
    Dec 2008
    Posts
    4

    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. #2
    Newbie Scupham is an unknown quantity at this point
    Join Date
    Dec 2008
    Posts
    4

    Re: [C] Fuctions compiler error

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

  3. #3
    Newbie Scupham is an unknown quantity at this point
    Join Date
    Dec 2008
    Posts
    4

    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?

  4. #4
    Super Moderator WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther's Avatar
    Join Date
    Jul 2006
    Age
    36
    Posts
    11,689
    Blog Entries
    57

    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;
    }
    CodeCall Blog | CodeCall Wiki | Shareware
    Programming is a branch of mathematics.
    My CodeCall Blog | My Personal Blog

+ Reply to Thread

Thread Information

Users Browsing this Thread

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

     

Similar Threads

  1. Replies: 11
    Last Post: 06-09-2008, 10:52 AM
  2. c++/cli - irritating compilation error
    By jwa in forum Managed C++
    Replies: 2
    Last Post: 01-20-2008, 08:43 PM
  3. need urgent help finding parce error!!!
    By siren in forum C and C++
    Replies: 3
    Last Post: 09-13-2007, 09:45 AM
  4. Download problem, internal Server Error
    By j3cubcapt in forum ionFiles
    Replies: 1
    Last Post: 07-02-2007, 09:45 AM
  5. can someone help me with my c librarys?
    By bobwrit in forum C and C++
    Replies: 4
    Last Post: 04-27-2007, 06:19 PM

Bookmarks

Bookmarks

     
        Algorithms and Data Structures

        Java tutorials

        Algorithms Forum

Posting Permissions

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