# include void version1 ( int n, int a[], int b[], int c[] ); void version2 ( int n, int a[], int b[], int c[] ); void version3 ( int n, int a[], int b[], int c[] ); int main ( ) { int a[3] = { 1, 2, 3 }; int b[3] = { 10, -20, 24 }; int c[3] = { 2, 1, 0}; version1 ( 3, a, b, c ); version2 ( 3, a, b, c ); version3 ( 3, a, b, c ); return 0; } void version1 ( int n, int a[], int b[], int c[] ) // // Find array with largest sum, and print. // { int a_sum; int b_sum; int c_sum; int i; printf ( "\n" ); printf ( "Version 1:\n" ); printf ( "\n" ); a_sum = a[0] + a[1] + a[2]; b_sum = b[0] + b[1] + b[2]; c_sum = c[0] + c[1] + c[2]; if ( b_sum < a_sum && c_sum < a_sum ) { for ( i = 0; i < n; i++ ) { printf ( "%d: %d\n", i, a[i] ); } } else if ( a_sum < b_sum && c_sum < b_sum ) { for ( i = 0; i < n; i++ ) { printf ( "%d: %d\n", i, b[i] ); } } else if ( a_sum < c_sum && b_sum < c_sum ) { for ( i = 0; i < n; i++ ) { printf ( "%d: %d\n", i, c[i] ); } } return; } void version2 ( int n, int a[], int b[], int c[] ) // // Find array with largest sum, and print. // { int a_sum; int b_sum; int c_sum; int d[n]; int i; printf ( "\n" ); printf ( "Version 2:\n" ); printf ( "\n" ); a_sum = a[0] + a[1] + a[2]; b_sum = b[0] + b[1] + b[2]; c_sum = c[0] + c[1] + c[2]; if ( b_sum < a_sum && c_sum < a_sum ) { for ( i = 0; i < n; i++ ) { d[i] = a[i]; } } else if ( a_sum < b_sum && c_sum < b_sum ) { for ( i = 0; i < n; i++ ) { d[i] = b[i]; } } else if ( a_sum < c_sum && b_sum < c_sum ) { for ( i = 0; i < n; i++ ) { d[i] = c[i]; } } for ( i = 0; i < n; i++ ) { printf ( "%d: %d\n", i, d[i] ); } return; } void version3 ( int n, int a[], int b[], int c[] ) // // Find array with largest sum, and print. // { int a_sum; int b_sum; int c_sum; int *d; int i; printf ( "\n" ); printf ( "Version 3:\n" ); printf ( "\n" ); a_sum = a[0] + a[1] + a[2]; b_sum = b[0] + b[1] + b[2]; c_sum = c[0] + c[1] + c[2]; if ( b_sum < a_sum && c_sum < a_sum ) { d = a; } else if ( a_sum < b_sum && c_sum < b_sum ) { d = b; } else if ( a_sum < c_sum && b_sum < c_sum ) { d = c; } for ( i = 0; i < n; i++ ) { printf ( "%d: %d\n", i, d[i] ); } return; }