Δημοσιεύτηκε: 02 Φεβ 2012, 01:05
Αν το κάνεις με τον τρόπο που το ξεκίνησες, δηλαδή με χρήση του -1 ως σηματοδότη τέλους του κάθε πίνακα, τότε είναι πολύ πιο απλός ο κώδικας από αυτό που λέτε (ειδικά αν δεν βάλουμε ελέγχους αποτυχίας στην main() )...
Αυτό που ζητάει η άσκηση όμως είναι αρκετά πιο σύνθετο
- Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>
typedef enum { FALSE=0, TRUE } Bool;
/* --------------------------------------------------
*
* --------------------------------------------------
*/
Bool arrswap( int **arr1, int **arr2 )
{
int *temp = NULL;
if ( !arr1 || !arr2 )
return FALSE;
temp = *arr1;
*arr1 = *arr2;
*arr2 = temp;
return TRUE;
}
/* --------------------------------------------------
*
* --------------------------------------------------
*/
Bool arrprint( const int *arr )
{
if ( !arr )
return FALSE;
while ( *arr != -1 )
printf( "%d ", *arr++ );
putchar('\n');
return TRUE;
}
/* --------------------------------------------------
*
* --------------------------------------------------
*/
int main( void )
{
int arr1[] = {1, 2, 3, 4, -1};
int arr2[] = {10, 20, 30, -1};
arrprint( arr1 );
arrprint( arr2 );
arrswap( &arr1, &arr2 );
arrprint( arr1 );
arrprint( arr2 );
exit( EXIT_SUCCESS );
Αυτό που ζητάει η άσκηση όμως είναι αρκετά πιο σύνθετο