Errore esercizio

di il
7 risposte

Errore esercizio

So che è un programmino molto banale ma non capisco come mai il vettore y mi carica "all'infinito" anche se ho impostato una lughezza di 10??
#include <iostream>
using namespace std;

void checkvett(int a[10], int b[10], int &c)
{
	int i, conta=0;
	for (i = 0; i < 10; i++)
	{
		if (a[i] == b[i])
		{
			conta++;
		}
	}
	if (conta == 10)
	{
		c = 1;
	}
	else c = -1;

}
int main()
{
	int x[10], y[10];
	int i, s = 0, ris;

	for (i = 0; i < 10; i++)
	{
		cout << "inserire valore in x: " << endl;
		cin >> x[i];
	}
	do {
		for (i = 0; i < 10; i++)
		{
			cout << "vettore y: " << endl;
			cin >> y[i];
		}
		checkvett(x, y, ris);
		if (ris>0)
			s++;
	} while (s < 10);

	system("pause");
	return 0;
}

7 Risposte

  • Re: Errore esercizio

    Uhm... sei sicura di aver capito cosa fa quel "banale" programmino?
  • Re: Errore esercizio

    Non all'infinito, ma esattamente quando per la decima volta inserisci in y un vettore uguale a x. Mi spiego meglio, nel "do", la condizione di uscita è s < 10, ed s parte da 0. Ora, la funzione checkvett restituisce 1 (nel terzo parametro) quando i due vettori sono uguali (i loro elementi sono tutti uguali). Tornando a "do", s viene incrementato solo quando la funzione checkvett restituisce in ris 1, quindi quando i due vettori x e y sono uguali. E questo per dieci volte (input y e controllo con x)
  • Re: Errore esercizio

    Franzo ha scritto:


    Non all'infinito, ma esattamente quando per la decima volta inserisci in y un vettore uguale a x. Mi spiego meglio, nel "do", la condizione di uscita è s < 10, ed s parte da 0. Ora, la funzione checkvett restituisce 1 (nel terzo parametro) quando i due vettori sono uguali (i loro elementi sono tutti uguali). Tornando a "do", s viene incrementato solo quando la funzione checkvett restituisce in ris 1, quindi quando i due vettori x e y sono uguali. E questo per dieci volte (input y e controllo con x)
    sisi dovrebbe fare proprio questo (da testo dell'esercizio) ma provandolo stamattina su visual studio il risultato non era questo, e non capivo il motivo
  • Re: Errore esercizio

    Di che risultato parli?

    Cosa inserisci e cosa ottieni?
  • Re: Errore esercizio

    oregon ha scritto:


    Di che risultato parli?

    Cosa inserisci e cosa ottieni?
    inserisco i 10 valori nel vettore x, poi inseirsco i 10 valori in y (uguali a qualli inseriti in x) ,ma l'inserimento dei valori in y mi continua all'infinito.
  • Re: Errore esercizio

    No. Continua 10 volte perché hai scritto s<10 se azzecchi 10 volte di fila la sequenza

    Controlla bene
  • Re: Errore esercizio

    giulia18395 ha scritto:


    inserisco i 10 valori nel vettore x, poi inseirsco i 10 valori in y (uguali a qualli inseriti in x) ,ma l'inserimento dei valori in y mi continua all'infinito.
    Ho copiato e incollato il tuo codice, l'ho compilato ed eseguito e dopo dieci volte termina quindi probabilmente non stai inserendo 10 volte i 10 elementi di y (totale 100 elementi), oppure stai inserendo dei numeri reali e cin chissà come li interpreta
Devi accedere o registrarti per scrivere nel forum
7 risposte