assignment-s-16.c (1430B)
1 /* Write a program that reads 10 integers into an array (using pointers), and prints the 2 array in ascending and descending order. */ 3 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 #define true 1 8 #define false 0 9 10 void input_arr(int *, int); 11 void print(int *, int); 12 13 int main() 14 { 15 int arr[10]; 16 input_arr(arr, 10); 17 print(arr, 10); 18 return 0; 19 } 20 21 void input_arr(int *arr, int n) 22 { 23 int i; 24 for (i = 0; i < n; i++) 25 { 26 printf("Enter element %d: ", i + 1); 27 scanf("%d", arr + i); 28 } 29 } 30 31 void print(int *arr, int n) 32 { 33 int i, j, isSwaped = true, backup; 34 int *temp = (int *)malloc(n * sizeof(int)); 35 if (temp == NULL) 36 { 37 printf("\nMemory Allocation Failed."); 38 return; 39 } 40 for (i = 0; i < n; i++) 41 { 42 *(temp + i) = *(arr + i); 43 } 44 for (i = 0; i < n - 1 && isSwaped == true; i++) 45 { 46 isSwaped = false; 47 for (j = 0; j < n - i - 1; j++) 48 { 49 if (*(temp + j) > *(temp + j + 1)) 50 { 51 backup = *(temp + j); 52 *(temp + j) = *(temp + j + 1); 53 *(temp + j + 1) = backup; 54 isSwaped = true; 55 } 56 } 57 } 58 printf("\nAscending Order:"); 59 for (i = 0; i < n; i++) 60 { 61 printf(" %d", *(temp + i)); 62 } 63 printf("\nDescending Order:"); 64 for (i = n - 1; i >= 0; i--) 65 { 66 printf(" %d", *(temp + i)); 67 } 68 free(temp); 69 }