95 lines
2.5 KiB
C++
95 lines
2.5 KiB
C++
/*
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
|
|
1. Scrivi un programma in C++ che:
|
|
- Definisca una struct denominata Dato, contenente i seguenti campi:
|
|
- numero (int): un numero intero;
|
|
- valore (float): un numero in virgola mobile;
|
|
- simbolo (char): un carattere.
|
|
|
|
|
|
2. Crei un array di Dato per gestire più elementi.
|
|
|
|
|
|
3. Implementi le seguenti funzioni:
|
|
- riempiArray(Dato arr[], int n): riempie l'array di Dato chiedendo i dati all'utente (o in modo casuale).
|
|
- trovaMassimo(const Dato arr[], int n): restituisce l'indice dell'elemento con il valore più alto nel campo valore.
|
|
- stampaArray(const Dato arr[], int n): stampa tutti gli elementi dell'array in formato leggibile.
|
|
- contaCar(const Dato arr[], char c): restituisce il conteggio delle occorrenze del carattere c.
|
|
*/
|
|
|
|
#include <iostream>
|
|
#include <ctime>
|
|
#include <cstdlib>
|
|
|
|
#define CAPACITY 10
|
|
#define SIZE 5
|
|
#define NUM_MIN 0
|
|
#define NUM_MAX 50
|
|
|
|
using namespace std;
|
|
|
|
typedef struct {
|
|
int numero;
|
|
float valore;
|
|
char simbolo;
|
|
} Dato;
|
|
|
|
void riempiArray(Dato arr[], int n);
|
|
void trovaMassimo(const Dato arr[], int n);
|
|
void stampaArray(const Dato arr[], int n);
|
|
void contaCar(const Dato arr[], int n);
|
|
|
|
int main(void) {
|
|
srand(time(NULL));
|
|
Dato arr[CAPACITY];
|
|
int n = SIZE;
|
|
int contaOccorrenzeC;
|
|
|
|
riempiArray(arr, n);
|
|
stampaArray(arr, n);
|
|
contaCar(arr, n);
|
|
trovaMassimo(arr, n);
|
|
|
|
return 0;
|
|
}
|
|
|
|
void riempiArray(Dato arr[], int n) {
|
|
float parteDecimale = 0;
|
|
for (int i = 0; i < n; i++) {
|
|
arr[i].numero = rand() % (NUM_MAX - NUM_MIN + 1) + NUM_MIN;
|
|
arr[i].valore = rand() % (NUM_MAX - NUM_MIN + 1) + NUM_MIN;
|
|
parteDecimale = rand() % (NUM_MAX - NUM_MIN + 1) + NUM_MIN;
|
|
arr[i].valore = arr[i].valore + (parteDecimale / 100);
|
|
arr[i].simbolo = rand() % (122 - 97 + 1) + 97;
|
|
}
|
|
}
|
|
|
|
void trovaMassimo(const Dato arr[], int n) {
|
|
float massimo = arr[0].valore;
|
|
for (int i = 0; i < n; i++) {
|
|
if (arr[i].valore > massimo) {
|
|
massimo = arr[i].valore;
|
|
}
|
|
}
|
|
cout << "Valore massimo nel campo 'valore': " << massimo << endl;
|
|
}
|
|
|
|
void stampaArray(const Dato arr[], int n) {
|
|
for (int i = 0; i < n; i++) {
|
|
cout << "Numero: " << arr[i].numero << endl;
|
|
cout << "Valore: " << arr[i].valore << endl;
|
|
cout << "Simbolo: " << arr[i].simbolo << endl << endl;
|
|
}
|
|
}
|
|
|
|
void contaCar(const Dato arr[], int n) {
|
|
int contaOccorrenzeC = 0;
|
|
for (int i = 0; i < n; i++) {
|
|
if (arr[i].simbolo == 'c') {
|
|
contaOccorrenzeC++;
|
|
}
|
|
}
|
|
cout << "Conta le occorrenze del carattere 'c': " << contaOccorrenzeC << endl;
|
|
} |