Array di tipo int con valori diversi tra loro

di il
2 risposte

Array di tipo int con valori diversi tra loro

Ciao a tutti. Sto cercando di imparare il c# principalmente per utilizzare Unity3D. E proprio scrivendo uno script mi sono imbattuto in un problema che non riesco a risolvere. Premetto che le mie conoscenze del linguaggio di programmazione sono molto superficiali, spero che qualcuno possa aiutarmi..vi spiego il problema..in pratica ho un array di interi e vorrei fare in modo che array sia diverso da array[i+1] e da array[i-1]. Ho scritto un metodo di verifica, ma non funziona correttamente. Finché resto su una dimensione ridotta dell'array tutto sembra funzionare, ma quando la dimensione aumenta fino ad arrivare al massimo (6 elementi) i numeri nell' array si ripetono..è da due giorni che ci sbatto la testa senza trovare soluzione..ringrazio tutti anticipatamente. Ciao
void VerificaArray(int[] serie)
	{
		for(int i = 0; i < serie.Length; i++)
		{
			for(int j = 1; j < serie.Length; j++)
			{
				//esclude il caso in cui i e j siano uguali poichè gli elementi dell'array allo stesso
				//indice hanno ovviamente lo stesso valore
				if((i != j) && (serie[i] == serie[j]))
				{
					int d = Random.Range(0, 6);
					for(int c = 0; c < serie.Length; c++)
					{
						while(d == serie[c])
						{
							d = Random.Range(0,6);
						}
					}
					serie[i] = d;
				}
			}
		}
	}

2 Risposte

  • Re: Array di tipo int con valori diversi tra loro

    Ciao,
    un chiarimento:
    
    ho un array di interi
    
    il controllo presuppone che l array sia già popolato e da controllare o lo devi popolare e mentre lo fai controlli i valori?
  • Re: Array di tipo int con valori diversi tra loro

    elle0087 ha scritto:


    ciao,
    un chiarimento:
    
    ho un array di interi
    
    il controllo presuppone che l array sia già popolato e da controllare o lo devi popolare e mentre lo fai controlli i valori?
    l'array è già popolato, vorrei solo che nello stesso array ci fossero elementi tutti diversi (nel codice inviato c'era un errore, int j = 0 e non uguale ad uno come invece riportato). Comunque l'ho risolto con List e Linq. Grazie comunque per l'interessamento
Devi accedere o registrarti per scrivere nel forum
2 risposte