main() { int length = 50, flag = 0, result; char *input = malloc(length), ch; puts("Enter number and press return"); scanf("%c", &ch); //getting input and checking for non numbers on each input while (ch != 10) { if (ch< 48 || ch> 57) { puts("Non number entered"); exit(1); } input[flag++] = ch; if (flag == length) { length += 20; input = realloc(input, length); } scanf("%c", &ch); } length = flag; result = divisible_by_11(input, length); (result == 0 || result % 11 == 0) ? puts("Divisible by 11") : puts("Not Divisible by 11"); //free(input); getch(); }
int divisible1(char *input) { long int difference = 0; int i ; for (i = 0;input[i];i++) if (i % 2 == 0) difference += (input[i] - '0'); else difference -= (input[i] - '0'); if (difference == 0 || difference == 11 || difference == -11) return 1; else if (difference > 0 && difference < 11 || (difference <0 && difference >-11)) return 0; else return divisible_by_11(difference); }
int divisible_by_11(long int number)//generic function that takes the number and finds that if it is divisible by 11 { int difference = 0, counter = 0; while (number) { if (counter % 2 == 0) difference += number % 10; else difference -= number % 10; number = number / 10; } if (difference == 0 || difference == 11 || difference == -11) return 1; else if (difference <0 && difference >-11 || (difference>0 && difference < 11)) return 0; else return divisible_by_11(difference); }
void main() { char string_number[10000]; int iterator = 0,result; printf("Enter the number\n"); do { string_number[iterator] = getchar(); iterator++; } while (string_number[iterator - 1] != '\n'); string_number[iterator - 1] = '\0'; result= divisible_by_11(string_number, iterator - 1); if (result == 1) printf("The given number %s is divisble by 11", string_number); else printf("The given number %s is not divisible by 11",string_number); getchar(); }