Home > Programming > Functions using the "C" programming language > example01.c

 

Next


/*
    Demonstrate functions using array parameters
*/


#include <conio.h>
#include <alloc.h>
#include <stdio.h>

/* Calculate the maximum value */
int max(int nums[],int size)
{
    int i;
    int max=nums[0];
    for(i=0;i<size;i++)
    {
        if(max<nums[i]) max=nums[i];
    }
    return max;
}

/* Reverce the order of the items */
void invert_nums(int nums[], int size)
{
    int i,temp;
    for(i=0;i<=(size>>1);i++)
    {
        temp = nums[i];
        nums[i] = nums[size-i-1];
        nums[size-i-1] = temp;
    }
}

/* return a pointer to the first array element */
int* inverted_nums(int nums[], int size)
{
    int *array=(int *)malloc(size);
    int i;
    for(i=0;i<size; i++)
    {
        *(array+i)=nums[size-i-1];
    }
    return array;
}

/* print the elements of the array */
void print_nums(int nums[], int size)
{
    int i;
    for(i=0;i<size;i++)
    {
        printf("%d ",nums[i]);
    }
    printf("\n");
}

/* Notice that we can pass the array parameters requardless the array size */
void main(void)
{
    int array1[10]={1,2,3,4,5,6,7,8,9,10};
    int array2[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
    int *array3[20];
    clrscr();
    printf("Before invering ...\n");
    print_nums(array1,10);
    print_nums(array2,20);
    printf("\nFirst max is %d.\n",max(array1,10));
    printf("\nSecond max is %d.\n",max(array2,20));
    invert_nums(array1,10);
    invert_nums(array2,20);
    printf("\nAfter invering ...\n");
    print_nums(array1,10);
    print_nums(array2,20);
    printf("\nFirst max is %d.\n",max(array1,10));
    printf("\nSecond max is %d.\n",max(array2,20));
    printf("\nNow invering the inverted array...\n");
    *array3 = inverted_nums(array2,20);
    print_nums(*array3,20);
    getch();
}


© 2004 Jim Valavanis

Next

1