Si completi il programma sotto riportato con le seguenti operazioni:
V
, spostando il primo elemento nell'ultima posizione, il secondo nella penultima posizione, ..., l'ultimo elemento nella prima posizione.
V
e la sua lunghezza n
alla funzione CalcolaRisultato
.
La stringa risultante è il risultato del quesito.
Esempi:
V
= [ 23 45 16 82 19 ] di n
= 5 numeri, il vettore invertito è V
= [ 19 82 16 45 23 ]; la chiamata alla funzione CalcolaRisultato(V,5)
restituisce 3506.667.
V
= [ 23 45 1 16 82 19 ] di n
= 6 numeri, il vettore invertito è V
= [ 19 82 16 1 45 23 ]; la chiamata alla funzione CalcolaRisultato(V,6)
restituisce 2847.619.
#include <stdio.h> #include <stdlib.h> double CalcolaRisultato(int *vettore, int n); int main(int argc, char *argv[]) { int V[] = { 416, 92, 757, 530, 931, 384, 654, 67, 723, 672, 384, 632, 885, 520, 652, 238, 263, 763, 754, 910, 73, 273, 898, 275, 517, 360, 248, 487, 847, 831, 35, 992, 680, 767, 61, 385, 478, 948, 935, 905, 320, 702, 8, 366, 267, 987, 278, 630, 167, 737, 437, 983, 737, 234, 91, 505, 494, 51, 465, 527, 413, 307, 911, 771, 530, 538, 589, 687, 914, 179, 889, 828, 501, 572, 34, 270, 726, 514, 891, 749, 213, 48, 843, 555, 803, 54, 3, 689, 16, 240, 592, 625, 418, 468, 416, 682, 535, 27, 318, 126, 329, 846, 74, 846, 557, 148, 591, 653, 1000, 352, 869, 984, 489, 842, 415, 388, 941, 762, 154, 142, 804, 710, 181, 956, 652, 253, 160, 204, 275, 427, 630, 902, 131, 248, 887, 93, 149, 163, 143, 136, 456, 386, 127, 350, 465, 453, 216, 948, 29, 588, 565, 472, 200, 909, 499, 601, 151, 932, 756, 622, 952, 251, 411, 132, 633, 886, 366, 652, 290, 288, 415, 955, 703, 390, 809, 477, 463, 680, 500, 801, 716, 730, 91, 254, 988, 127, 852, 962, 441, 707, 525, 715, 866, 683, 742, 464, 917, 440, 216, 818, 320, 956, 200, 515, 891, 538, 409, 877, 212, 807, 887, 631, 104, 633, 774, 825, 882, 1, 861, 140, 668, 451, 316, 440, 95, 728, 990, 489, 20, 206, 617, 689, 544, 1000, 214, 953, 468, 765, 418, 154, 709, 390, 870, 837, 683, 829, 245, 72, 66, 602, 948, 777, 423, 283, 577, 506, 366, 515, 220, 399, 192, 285, 234, 795, 1, 389, 697, 12, 599, 829, 137, 194, 753, 988, 693, 319, 82, 177, 784, 57, 938, 158, 486, 82, 162, 739, 214, 554, 270, 714, 703, 259, 431, 258, 394, 228, 634, 320, 144, 527, 697, 371, 635, 79, 136, 254, 476, 317, 370, 514, 672, 820, 763, 588, 102, 630, 729, 311, 670, 662, 523, 518, 15, 700, 677, 830, 402, 388, 971, 330, 322, 695, 547, 519, 275, 461, 784, 861, 984, 844, 583, 987, 752, 606, 118, 151, 945, 557, 23, 643, 671, 918, 447, 708, 818, 267, 707, 585, 696, 545, 164, 529, 161, 627, 783, 437, 447, 7, 904, 681, 747, 344, 461, 372, 521, 660, 10, 687, 71, 721, 104, 5, 161, 710, 216, 589, 390, 247, 280, 67, 298, 542, 386, 834, 519, 56, 814, 543, 58, 857, 992, 280, 578, 286, 332, 456, 776, 754, 189, 151, 496, 941, 80, 682, 724, 51, 490, 126, 608, 172, 520, 2, 458, 974, 739, 839, 30, 245, 696, 447, 761, 352, 221, 117, 478, 260, 680, 357, 7, 666, 688, 124, 600, 425, 816, 264, 83, 955, 553, 378, 987, 695, 210, 615, 81, 251, 935, 437, 495, 432, 563, 537, 770, 547, 225, 176, 814, 770, 234, 166, 745, 452, 114, 30, 837, 160, 125, 622, 757, 48, 975, 750, 950, 360, 376, 500, 653, 539, 654, 330, 123, 722, 772, 54, 442, 485, 468, 255, 231, 662 }; int n = sizeof(V)/sizeof(int); /****************************** ** Inserire il codice qui ** ******************************/ return 0; } double CalcolaRisultato (int *vettore, int n) { int i, divisore, dividendo; dividendo = 0; for (i = 0; i < n; i++) dividendo += (i+1) * vettore[i]; divisore = (n+1)*n/2; return (100.0 * dividendo) / divisore; }