#include void sort(int a[], int n); void print(int *a, int n) { int count = 0; while(count < n) { printf("%d \n", a[count]); count++; } return; } int string_length(char *s); int string_length_recursive(char *s); int palindrome(char *s, int length); int palindrome_recursive(char s[], int length); int main() { int a[] = {10, 34, 54, 27, 98, 231, 5, 67, 564, 72, -32}; sort(a, 11); print(a, 11); char *s = "subhankar"; printf("length of %s is %d = %d\n", s, string_length(s), string_length_recursive(s)); char *pal = "palindromemordnilap"; printf("\"%s\" is palindrome ? = %d\n", pal, palindrome_recursive(pal,string_length(pal))); printf("\"%s\" is palindrome ? = %d\n", pal, palindrome(pal,string_length(pal))); return 0; } void sort(int *a, int n) { if(n == 1) return; int max_value = *a; int temp; int count = 0, index = 0; while(count < n) { if(max_value < *(a+count)) { max_value = *(a+count); index = count; } count++; } temp = *a; *a = max_value; *(a+index) = temp; sort(a+1, n-1); return; } int string_length(char *s) { int n = 0; while(*s != '\0') { n++; s++; } return n; } int string_length_recursive(char *s) { if(*s == '\0') return 0; return 1+string_length_recursive(s+1); } int palindrome_recursive(char *s, int length) { if(length == 0 || length == 1) return 1; if(*s != *(s+length-1)) return 0; return palindrome_recursive(s+1, length -2); } int palindrome(char *s, int length) { int count = 0; while(count <= length - count - 1) { if(s[count] != *(s + length - count - 1)) return 0; count++; } return 1; }