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;
}