Assignment 2 : Solution
Exercise 1
#include <stdio.h>
#include <math.h>
#define LIMIT 1000000
int main ()
{
double sum = 0, logn;
int n;
for (n = 1; n <= LIMIT; n++) {
sum += 1.0 / (double)(n);
if (n % 10000 == 0) {
logn = log(n);
printf("n = %7d, H_n = %12.9lf, ln n = %12.9lf, H_n - ln n = %12.9lf\n",
n, sum, logn, sum - logn);
}
}
}
Sample output
n = 10000, H_n = 9.787606036, ln n = 9.210340372, H_n - ln n = 0.577265664
n = 20000, H_n = 10.480728217, ln n = 9.903487553, H_n - ln n = 0.577240665
n = 30000, H_n = 10.886184992, ln n = 10.308952661, H_n - ln n = 0.577232331
n = 40000, H_n = 11.173862898, ln n = 10.596634733, H_n - ln n = 0.577228165
n = 50000, H_n = 11.397003949, ln n = 10.819778284, H_n - ln n = 0.577225665
n = 60000, H_n = 11.579323839, ln n = 11.002099841, H_n - ln n = 0.577223998
n = 70000, H_n = 11.733473329, ln n = 11.156250521, H_n - ln n = 0.577222808
n = 80000, H_n = 11.867003829, ln n = 11.289781914, H_n - ln n = 0.577221915
n = 90000, H_n = 11.984786170, ln n = 11.407564949, H_n - ln n = 0.577221220
n = 100000, H_n = 12.090146130, ln n = 11.512925465, H_n - ln n = 0.577220665
n = 110000, H_n = 12.185455855, ln n = 11.608235645, H_n - ln n = 0.577220210
n = 120000, H_n = 12.272466853, ln n = 11.695247022, H_n - ln n = 0.577219832
n = 130000, H_n = 12.352509240, ln n = 11.775289729, H_n - ln n = 0.577219511
n = 140000, H_n = 12.426616938, ln n = 11.849397702, H_n - ln n = 0.577219236
n = 150000, H_n = 12.495609571, ln n = 11.918390573, H_n - ln n = 0.577218998
n = 160000, H_n = 12.560147884, ln n = 11.982929094, H_n - ln n = 0.577218790
n = 170000, H_n = 12.620772322, ln n = 12.043553716, H_n - ln n = 0.577218606
n = 180000, H_n = 12.677930573, ln n = 12.100712130, H_n - ln n = 0.577218443
n = 190000, H_n = 12.731997648, ln n = 12.154779351, H_n - ln n = 0.577218296
n = 200000, H_n = 12.783290810, ln n = 12.206072646, H_n - ln n = 0.577218165
n = 210000, H_n = 12.832080856, ln n = 12.254862810, H_n - ln n = 0.577218046
n = 220000, H_n = 12.878600763, ln n = 12.301382825, H_n - ln n = 0.577217938
n = 230000, H_n = 12.923052427, ln n = 12.345834588, H_n - ln n = 0.577217839
n = 240000, H_n = 12.965611951, ln n = 12.388394202, H_n - ln n = 0.577217748
n = 250000, H_n = 13.006433862, ln n = 12.429216197, H_n - ln n = 0.577217665
n = 260000, H_n = 13.045654498, ln n = 12.468436910, H_n - ln n = 0.577217588
n = 270000, H_n = 13.083394755, ln n = 12.506177238, H_n - ln n = 0.577217517
n = 280000, H_n = 13.119762333, ln n = 12.542544882, H_n - ln n = 0.577217451
n = 290000, H_n = 13.154853591, ln n = 12.577636202, H_n - ln n = 0.577217389
n = 300000, H_n = 13.188755085, ln n = 12.611537754, H_n - ln n = 0.577217332
n = 310000, H_n = 13.221544854, ln n = 12.644327576, H_n - ln n = 0.577217278
n = 320000, H_n = 13.253293502, ln n = 12.676076275, H_n - ln n = 0.577217227
n = 330000, H_n = 13.284065113, ln n = 12.706847933, H_n - ln n = 0.577217180
n = 340000, H_n = 13.313918032, ln n = 12.736700897, H_n - ln n = 0.577217135
n = 350000, H_n = 13.342905527, ln n = 12.765688433, H_n - ln n = 0.577217093
n = 360000, H_n = 13.371076364, ln n = 12.793859310, H_n - ln n = 0.577217054
n = 370000, H_n = 13.398475301, ln n = 12.821258285, H_n - ln n = 0.577217016
n = 380000, H_n = 13.425143512, ln n = 12.847926532, H_n - ln n = 0.577216981
n = 390000, H_n = 13.451118965, ln n = 12.873902018, H_n - ln n = 0.577216947
n = 400000, H_n = 13.476436741, ln n = 12.899219826, H_n - ln n = 0.577216915
n = 410000, H_n = 13.501129323, ln n = 12.923912439, H_n - ln n = 0.577216884
n = 420000, H_n = 13.525226846, ln n = 12.948009990, H_n - ln n = 0.577216855
n = 430000, H_n = 13.548757315, ln n = 12.971540488, H_n - ln n = 0.577216828
n = 440000, H_n = 13.571746807, ln n = 12.994530006, H_n - ln n = 0.577216801
n = 450000, H_n = 13.594219638, ln n = 13.017002862, H_n - ln n = 0.577216776
n = 460000, H_n = 13.616198520, ln n = 13.038981768, H_n - ln n = 0.577216752
n = 470000, H_n = 13.637704702, ln n = 13.060487974, H_n - ln n = 0.577216729
n = 480000, H_n = 13.658758089, ln n = 13.081541383, H_n - ln n = 0.577216707
n = 490000, H_n = 13.679377355, ln n = 13.102160670, H_n - ln n = 0.577216685
n = 500000, H_n = 13.699580042, ln n = 13.122363377, H_n - ln n = 0.577216665
n = 510000, H_n = 13.719382650, ln n = 13.142166005, H_n - ln n = 0.577216645
n = 520000, H_n = 13.738800717, ln n = 13.161584091, H_n - ln n = 0.577216626
n = 530000, H_n = 13.757848894, ln n = 13.180632286, H_n - ln n = 0.577216608
n = 540000, H_n = 13.776541009, ln n = 13.199324419, H_n - ln n = 0.577216591
n = 550000, H_n = 13.794890131, ln n = 13.217673557, H_n - ln n = 0.577216574
n = 560000, H_n = 13.812908620, ln n = 13.235692063, H_n - ln n = 0.577216558
n = 570000, H_n = 13.830608182, ln n = 13.253391640, H_n - ln n = 0.577216542
n = 580000, H_n = 13.847999909, ln n = 13.270783383, H_n - ln n = 0.577216527
n = 590000, H_n = 13.865094328, ln n = 13.287877816, H_n - ln n = 0.577216512
n = 600000, H_n = 13.881901432, ln n = 13.304684934, H_n - ln n = 0.577216498
n = 610000, H_n = 13.898430721, ln n = 13.321214236, H_n - ln n = 0.577216485
n = 620000, H_n = 13.914691228, ln n = 13.337474757, H_n - ln n = 0.577216471
n = 630000, H_n = 13.930691557, ln n = 13.353475098, H_n - ln n = 0.577216459
n = 640000, H_n = 13.946439901, ln n = 13.369223455, H_n - ln n = 0.577216446
n = 650000, H_n = 13.961944076, ln n = 13.384727642, H_n - ln n = 0.577216434
n = 660000, H_n = 13.977211536, ln n = 13.399995114, H_n - ln n = 0.577216422
n = 670000, H_n = 13.992249403, ln n = 13.415032991, H_n - ln n = 0.577216411
n = 680000, H_n = 14.007064477, ln n = 13.429848077, H_n - ln n = 0.577216400
n = 690000, H_n = 14.021663266, ln n = 13.444446877, H_n - ln n = 0.577216390
n = 700000, H_n = 14.036051993, ln n = 13.458835614, H_n - ln n = 0.577216379
n = 710000, H_n = 14.050236618, ln n = 13.473020249, H_n - ln n = 0.577216369
n = 720000, H_n = 14.064222850, ln n = 13.487006491, H_n - ln n = 0.577216359
n = 730000, H_n = 14.078016163, ln n = 13.500799813, H_n - ln n = 0.577216350
n = 740000, H_n = 14.091621806, ln n = 13.514405465, H_n - ln n = 0.577216341
n = 750000, H_n = 14.105044817, ln n = 13.527828486, H_n - ln n = 0.577216332
n = 760000, H_n = 14.118290035, ln n = 13.541073712, H_n - ln n = 0.577216323
n = 770000, H_n = 14.131362108, ln n = 13.554145794, H_n - ln n = 0.577216314
n = 780000, H_n = 14.144265505, ln n = 13.567049199, H_n - ln n = 0.577216306
n = 790000, H_n = 14.157004522, ln n = 13.579788224, H_n - ln n = 0.577216298
n = 800000, H_n = 14.169583297, ln n = 13.592367007, H_n - ln n = 0.577216290
n = 810000, H_n = 14.182005809, ln n = 13.604789527, H_n - ln n = 0.577216282
n = 820000, H_n = 14.194275894, ln n = 13.617059619, H_n - ln n = 0.577216275
n = 830000, H_n = 14.206397247, ln n = 13.629180980, H_n - ln n = 0.577216267
n = 840000, H_n = 14.218373431, ln n = 13.641157171, H_n - ln n = 0.577216260
n = 850000, H_n = 14.230207882, ln n = 13.652991628, H_n - ln n = 0.577216253
n = 860000, H_n = 14.241903915, ln n = 13.664687668, H_n - ln n = 0.577216246
n = 870000, H_n = 14.253464730, ln n = 13.676248491, H_n - ln n = 0.577216240
n = 880000, H_n = 14.264893420, ln n = 13.687677186, H_n - ln n = 0.577216233
n = 890000, H_n = 14.276192968, ln n = 13.698976742, H_n - ln n = 0.577216227
n = 900000, H_n = 14.287366263, ln n = 13.710150042, H_n - ln n = 0.577216220
n = 910000, H_n = 14.298416093, ln n = 13.721199878, H_n - ln n = 0.577216214
n = 920000, H_n = 14.309345157, ln n = 13.732128949, H_n - ln n = 0.577216208
n = 930000, H_n = 14.320156068, ln n = 13.742939865, H_n - ln n = 0.577216203
n = 940000, H_n = 14.330851351, ln n = 13.753635154, H_n - ln n = 0.577216197
n = 950000, H_n = 14.341433455, ln n = 13.764217264, H_n - ln n = 0.577216191
n = 960000, H_n = 14.351904749, ln n = 13.774688563, H_n - ln n = 0.577216186
n = 970000, H_n = 14.362267531, ln n = 13.785051350, H_n - ln n = 0.577216180
n = 980000, H_n = 14.372524026, ln n = 13.795307851, H_n - ln n = 0.577216175
n = 990000, H_n = 14.382676392, ln n = 13.805460222, H_n - ln n = 0.577216170
n = 1000000, H_n = 14.392726723, ln n = 13.815510558, H_n - ln n = 0.577216165
Exercise 2
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int a, i, max, min;
srand((unsigned int)time(NULL));
i = 1;
while (1) {
a = (rand() % 105) - 5;
printf("Iteration %3d: new entry = %3d, ", i, a);
if (a < 0) { printf("...quitting...\n\n\n"); exit(0); }
if (i == 1) max = min = a;
else {
if (a > max) max = a;
if (a < min) min = a;
}
printf("max = %3d, min = %3d\n", max, min);
++i;
}
}
Sample output
Iteration 1: new entry = 81, max = 81, min = 81
Iteration 2: new entry = 89, max = 89, min = 81
Iteration 3: new entry = 45, max = 89, min = 45
Iteration 4: new entry = 2, max = 89, min = 2
Iteration 5: new entry = 18, max = 89, min = 2
Iteration 6: new entry = 4, max = 89, min = 2
Iteration 7: new entry = 2, max = 89, min = 2
Iteration 8: new entry = 77, max = 89, min = 2
Iteration 9: new entry = 82, max = 89, min = 2
Iteration 10: new entry = 47, max = 89, min = 2
Iteration 11: new entry = 80, max = 89, min = 2
Iteration 12: new entry = 63, max = 89, min = 2
Iteration 13: new entry = 1, max = 89, min = 1
Iteration 14: new entry = 53, max = 89, min = 1
Iteration 15: new entry = 3, max = 89, min = 1
Iteration 16: new entry = 64, max = 89, min = 1
Iteration 17: new entry = 59, max = 89, min = 1
Iteration 18: new entry = 38, max = 89, min = 1
Iteration 19: new entry = -2, ...quitting...
Iteration 1: new entry = 64, max = 64, min = 64
Iteration 2: new entry = 82, max = 82, min = 64
Iteration 3: new entry = 98, max = 98, min = 64
Iteration 4: new entry = -1, ...quitting...
Iteration 1: new entry = 0, max = 0, min = 0
Iteration 2: new entry = 48, max = 48, min = 0
Iteration 3: new entry = 48, max = 48, min = 0
Iteration 4: new entry = 3, max = 48, min = 0
Iteration 5: new entry = 43, max = 48, min = 0
Iteration 6: new entry = 60, max = 60, min = 0
Iteration 7: new entry = 29, max = 60, min = 0
Iteration 8: new entry = 79, max = 79, min = 0
Iteration 9: new entry = 82, max = 82, min = 0
Iteration 10: new entry = 55, max = 82, min = 0
Iteration 11: new entry = 59, max = 82, min = 0
Iteration 12: new entry = 49, max = 82, min = 0
Iteration 13: new entry = 75, max = 82, min = 0
Iteration 14: new entry = 33, max = 82, min = 0
Iteration 15: new entry = 82, max = 82, min = 0
Iteration 16: new entry = 53, max = 82, min = 0
Iteration 17: new entry = 91, max = 91, min = 0
Iteration 18: new entry = 93, max = 93, min = 0
Iteration 19: new entry = 56, max = 93, min = 0
Iteration 20: new entry = 94, max = 94, min = 0
Iteration 21: new entry = 1, max = 94, min = 0
Iteration 22: new entry = 32, max = 94, min = 0
Iteration 23: new entry = 83, max = 94, min = 0
Iteration 24: new entry = 63, max = 94, min = 0
Iteration 25: new entry = 79, max = 94, min = 0
Iteration 26: new entry = -2, ...quitting...
Iteration 1: new entry = 55, max = 55, min = 55
Iteration 2: new entry = 5, max = 55, min = 5
Iteration 3: new entry = 14, max = 55, min = 5
Iteration 4: new entry = 74, max = 74, min = 5
Iteration 5: new entry = 73, max = 74, min = 5
Iteration 6: new entry = 79, max = 79, min = 5
Iteration 7: new entry = 41, max = 79, min = 5
Iteration 8: new entry = 79, max = 79, min = 5
Iteration 9: new entry = 51, max = 79, min = 5
Iteration 10: new entry = 14, max = 79, min = 5
Iteration 11: new entry = 90, max = 90, min = 5
Iteration 12: new entry = 37, max = 90, min = 5
Iteration 13: new entry = 83, max = 90, min = 5
Iteration 14: new entry = 71, max = 90, min = 5
Iteration 15: new entry = 84, max = 90, min = 5
Iteration 16: new entry = 32, max = 90, min = 5
Iteration 17: new entry = 16, max = 90, min = 5
Iteration 18: new entry = 89, max = 90, min = 5
Iteration 19: new entry = 41, max = 90, min = 5
Iteration 20: new entry = 38, max = 90, min = 5
Iteration 21: new entry = 48, max = 90, min = 5
Iteration 22: new entry = 9, max = 90, min = 5
Iteration 23: new entry = 31, max = 90, min = 5
Iteration 24: new entry = 96, max = 96, min = 5
Iteration 25: new entry = 66, max = 96, min = 5
Iteration 26: new entry = 17, max = 96, min = 5
Iteration 27: new entry = 17, max = 96, min = 5
Iteration 28: new entry = 53, max = 96, min = 5
Iteration 29: new entry = 53, max = 96, min = 5
Iteration 30: new entry = -2, ...quitting...
Iteration 1: new entry = 14, max = 14, min = 14
Iteration 2: new entry = 19, max = 19, min = 14
Iteration 3: new entry = 74, max = 74, min = 14
Iteration 4: new entry = 8, max = 74, min = 8
Iteration 5: new entry = -1, ...quitting...