0

Hello, I'm still getting the hang of coding (just started a few weeks ago) so this may seem like a daft question. I keep on getting three errors when I run my code:

ode_functions.c
f:\ode_functions.c(41) : error C2296: '^' : illegal, left operand has type 'double'
f:\ode_functions.c(41) : error C2297: '^' : illegal, right operand has type 'double'
f:\ode_functions.c(41) : error C2198: 'sqrt' : too few arguments for call

Here's an overview, ode_functions.c is called on by ode_main.c. ode_main.c also calls on ode_functions.h. Not only this, but there are three more header files and one more source file, ode_methods.c which implements the Euler and Improved Euler methods.

I'll print out ode_functions.h and ode_functions.c. I'll also print out the relevant bits of ode_main.c.

ode_functions.c:

#include <assert.h>
#include "ode_functions.h"
#include <math.h>

double function3_derivative(double x, double y){
	double H, V, vo;
	
	double temp = (vo * sqrt((H - x)^2 + y^2) - V * y)/ V*(H - x);

	return temp;
}

ode_functions.h:

#ifndef _ode_functions_h_
#define _ode_functions_h_

double function3_derivative(double x, double y);

#endif

ode_main.c:

#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include "allocate.h"
#include "error.h"
#include "fileio.h"
#include "ode_methods.h"
#include "ode_functions.h"

int main(void)
{
  code code code code

  double H, V, vo;

printf("Enter the function number: ");
  scanf("%d", &function_number);
  switch (function_number) {
  case 1:
    dydx = function1_derivative;
    break;
  case 2:
	  dydx = function2_derivative;
	  break;
  case 3: 
	  dydx = function3_derivative;
	  break;

  default:
    ERROR("Unknown function number");
  }

  if (function_number = 3){
	  printf("Enter the width of the river: ");
	  scanf("%lf", &H);
	  printf("Enter v(0): ");
	  scanf("%lf", &vo);
	  printf("Enter the velocity of the boat in still water: ");
	  scanf("%lf", &V);
  }
 
code code code code

Could someone please point me in the right direction? Probably using pretty basic coding language since I'm too 'newb' to understand complicated coding language.

2
Contributors
1
Reply
2
Views
9 Years
Discussion Span
Last Post by Nick Evan
0

if you want the power of something, you need the pow() function. You can't do y^2, you need to write it like pow(y,2);

Edited by Nick Evan: n/a

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.