#include #include "array.h" #include "base10.h" int sizeofStr(char in[]) { int i = 0; for (i = 0; in[i] != '\0'; ++i) ; return i; } void printStrArray(char in[]) { int i; printf("{ "); for (i = 0; i < sizeofStr(in); ++i) { printf("%c", in[i]); if (i == sizeofStr(in) - 1) { printf(" }\n"); } else { printf(", "); } } } void printIntArray(intArray *in) { int i; printf("{ "); for (i = 0; i < in->length; ++i) { printf("%d", in->data[i]); if (i == in->length - 1) { printf(" }\n"); } else { printf(", "); } } } int checkIntArraySorted(intArray *in) { int i = 0; while(i < in->length - 1) { if (in->data[i] > in->data[i + 1]) return 0; ++i; } return 1; } /* Convert an integer array into a combined integer */ int intArrayToInt(intArray *in) { int i; int out = 0; int currentDigit; for (i = 0, currentDigit = in->length; i <= in->length; ++i, --currentDigit) out += in->data[i] * intDigitExpand(currentDigit); return out; } /* Split an integer into an integer array */ intArray intToIntArray(int in) { int inLength = intDigitCount(in); int outData[inLength]; intArray out; out.data = outData; out.length = inLength; int i; int j; for(i = inLength, j = 0; i >= 1; --i, ++j) { out.data[j] = in / intDigitExpand(i); in -= intDigitExpand(i) * out.data[j]; } return out; }