-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVettori_con_tappo-Es6.c
89 lines (67 loc) · 1.71 KB
/
Vettori_con_tappo-Es6.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
Esercizio 6
Scrivere una funzione che preso in input un vettore con tappo, restituisca
in una variabile passata per riferimento che rappresenta il numero di volte
che il valore massimo nel vettore tappo si presenta.
Restituire -1 se il vettore con tappo è vuoto.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DIM 11
void vettoreCasuale (int v[])
{
int i, nv;
nv = ( rand() ) % DIM;
for (i = 0; i < nv; i++)
v[i] = ( rand() ) % 101;
v[i] = -1;
}
void stampaVettore (int v[])
{
int i;
for (i = 0; v[i] != -1; i++)
printf ("Valore in posizione %d del vettore: %d\n", i, v[i]);
}
int calcoloValMax (int v[])
{
int i, max;
max = v[0];
if (max != -1)
for (i = 1; v[i] != -1; i++)
if (max < v[i])
max = v[i];
return max;
}
void contaOccorrenze (int v[], int n, int* occ)
{
int i;
*occ = 0;
if (v[0] == -1)
*occ = -1;
else
for (i = 0; v[i] != -1; i++)
if (v[i] == n)
(*occ)++;
}
int main ()
{
int vett[DIM], valmax, numocc;
srand (time(NULL));
vettoreCasuale (vett);
printf ("Vettore:\n");
stampaVettore (vett);
valmax = calcoloValMax (vett);
contaOccorrenze (vett, valmax, &numocc);
if (numocc == -1)
printf ("Il vettore e' vuoto\n");
else
{
printf ("Il valore massimo contenuto nel vettore e' %d\n", valmax);
if (numocc == 1)
printf ("Il valore massimo %d ricorre %d volta\n", valmax, numocc);
else
printf ("Il valore massimo %d ricorre %d volte\n", valmax, numocc);
}
return 0;
}