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;
}
Maintained by John Loomis, updated Sat Mar 13 19:59:11 2010