Home > Programming > Functions using the "C" programming language > example01.c |
/*
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