/* Test the behaviour of our queue implementation, by creating a queue with a random number of nodes and each containing a random integer.*/ int testRandomQueue() { QQueue queue = NULL; int sumq = 0; int sumb = 0; int suma = 0; int len = 0; srand((u_int32_t)time(NULL)); /* Seed the random generator */ int size = rand() % 1000; for (int i = 0; i < size; i++) { int* el = (int*)malloc(sizeof(Data)); *el = rand()/100000; sumb = sumb + *el; enqueue(&queue, el); } sumq = sum(queue, sumInts); len = length(queue); for (int i = 0; i < size; i++) { int* el = dequeue(&queue); suma = suma + sumInts(el); free(el); } if (debugValues) { printf("Truth of (sumi == sumq && sumq == suma), %d, len == size(%d), %d\n" , (sumb == sumq && sumq == suma), size, len == size); } return (sumb == sumq && sumq == suma) && len == size; }
int main(int argc, char *argv[]) { srand((unsigned)time(NULL)); n = rand() % 30 + 1; if(argc == 2) { sscanf(argv[1], "%d", &n); } generateNumbers(a, 1, n); //printf("n= %d\n", n); //printf("original data\n"); printf("%d\n", n); display(a, 1, n); qsort(a+1, n, sizeof(a[1]), intsCmp); //printf("after sort\n"); //display(a, 1, n); s = sumInts(a, 1, n); intsCopy(b, a, 1, n); for(int i=1; i<=n; i++) { b[i] += b[i-1]; } //printf("list sum\n"); //display(b, 1, n); half = (double)s / 2; avg = (double)s / n; //printf("total weight:: %d\n", s); //printf("halg weight:: %.2lf\n", half); //printf("avg weight:: %.2lf\n", avg); clock_t t; t = clock(); trace(1, 0); t = clock() - t; printf("%lu clicks (%f secs)\n", t, (float)t / CLOCKS_PER_SEC); printf("%d %d\n", res, s - res); return 0; }
int main(int argc, char *argv[]) { int n, k, result; if (argc == 2) { if (!strcmp(argv[1], "-h")) printf("Usage: sum2n <positive integer> <positive integer>\n"); } else if (argc == 3) { n = atoi(argv[1]); k = atoi(argv[2]); result = sumInts(n, k); if ( result != -1 ) printf("%d\n", result); else { printf("overflow\n"); return 1; } return 0; } return 1; }