prog1.c


/* prog 1
*
*    Demonstrate high-level C constructions.
*
*/

int mylog2(int arg);
void if_test();
int for_test();
void array_test();
void ascii_code();
double adder(double a, double b);
int factorial(int n);
int diffofsum(int f, int g, int h, int i);

int main() 
{
	int x;
	//if_test();
	x = mylog2(128);
	x = for_test();
	array_test();
	ascii_code();
	double y = adder(3.0,4.0);
	return 0;
}

void if_test() 
{
	int na, nb, nc;
	// reminder: s8 is another name for fp
	// na @ 0(s8)
	// nb @ 4(s8)
	// nc @ 8(s8)
	na = 1;
	nb = 20;
	nc = 13;

	// IF Statement

	if (nb>nc) na = 4;

	// IF-ELSE Statement
	
	if (nb<nc) na = nc - 5;
	else na = nc + 2;
}

int mylog2(int arg) 
{
	int x, pow;
	x = 0;
	pow = 1;
	/*
	*  consider:
	*    pow = pow<<1; (or pow <<= 1) 
	*    x++;
	*/
	while (pow < arg) {
		pow <<= 1;
		//pow = pow * 2;
		x = x + 1;
	}
	return x;
}

int for_test()
{
	int i, sum;
	
	// sum the integers 1 .. 5

	// consider replacing i!=6 with i<6
	sum = 0;
	for (i=1; i!=6; i++) {
		sum = sum + i;
	}
	return sum;
}

int array[5];

void array_test()
{
	int i, n;
	array[0] = 1;
	array[1] = array[0]*3;

	n = sizeof(array)/sizeof(int);

	// use for loop

	for (i=1; i<n; i++) {
		array[i] = array[i-1]*3;
	}
}

void ascii_code()
{
	int na, nb , nc;

	na = 'S';
	nb = 'A';
	nc = 'a';
	na = nc - nb;
}


double adder(double a, double b)
{
	double v;
	v = a + b;
	return v;
}

int factorial(int n)
{
	if (n<=1) return 1;
	return n*factorial(n-1);
}

int diffofsums(int f, int g, int h, int i)
{
  int result;
  result = (f + g) - (h + i);
  return result;
}



Results




Maintained by John Loomis, updated Sat Mar 13 19:59:11 2010