interrogazione_1/Program.cs
2025-02-12 08:13:50 +01:00

83 lines
3.0 KiB
C#

namespace interrogazione_1;
class Program {
static void Main(string[] args) {
ContaOccorrenze(Input());
}
static int[] Input() {
Console.Clear();
//dichiarazione e inizializzazione variabili
int input = 0, i = 0;
const int dimensione = 10;
int[] ritorno = new int[dimensione];
//Riempimento array
while (i < dimensione || input == Int32.MaxValue) {
Console.Write($"Inserire il valore n. {i + 1}: ");
input = Convert.ToInt32(Console.ReadLine());
if (input == Int32.MaxValue) {//escludo un valore per effettuare la stampa correttamente successivamente
Console.Write("Valore non valido");
Pausa();
}
else {
ritorno[i] = input;
i++;
}
}
return ritorno;
}
static void ContaOccorrenze(int[] p_array) {
Console.Clear();
//dichiarazione e inizializzazione variabili
int[] elementi = new int[p_array.Length];
int[] occorrenze = new int[p_array.Length];
int temp = Int32.MaxValue, occorrenza, k = 0;
bool incontrato = false;
for (int i = 0; i < p_array.Length; i++) {//riempio gli array con un valore non inseribile per poi effettuare la stampa
elementi[i] = Int32.MaxValue;
occorrenze[i] = Int32.MaxValue;
}
for (int i = 0; i < p_array.Length; i++) {
occorrenza = 0;//reset del contatore delle occorrenze
if (p_array[i] != temp) {//se l'elemento che sto guardando ora (p_array[i]) è uguale a quello che stavo guardando prima (temp), non vado a contare quante volte è presente e salto al prossimo elemento
temp = p_array[i];
for (int j = 0; j < p_array.Length; j++) { //verifico se p_array[i] è già nell'array elementi
if (elementi[j] == temp) {
incontrato = true;
}
}
if (!incontrato) {//se p_array[i] non è nell'array elementi
for (int j = 0; j < p_array.Length; j++) {
if (p_array[j] == temp) {
occorrenza++;//conto tutte le volte che si ripete
}
}
elementi[i] = temp;//segno l'elemento corrente
occorrenze[i] = occorrenza;//segno quante volte occorre
}
incontrato = false;//reset della variabile
}
}
//mostro i risultati
while (elementi[k] != Int32.MaxValue && occorrenze[k] != Int32.MaxValue) { //mostro tutti gli elementi e le occorrenze che non siano il valore che ho escluso
Console.WriteLine($"L'elemento {elementi[i]} ricorre {occorrenze[i]} volte");
k++;
}
}
static void Pausa() {
Console.WriteLine("Premere un tasto per continuare. . .");
Console.ReadKey();
Console.Clear();
}
}